var的特點
- 函數作用域
let的特點
- 沒有變量提升,必須先聲明。再調用
- 同一個作用域下不可以重複定義同一個名稱
- 塊級作用域
function fun(){
let a = 10
if(true){
let a =100
}
console.log(a)
}
輸出a為10,因為let為塊級作用域。
暫時性死區 let a = b, b = 1
const的特點 (數組和對象指向的是記憶體,對應的值可修改)
- 沒有變量提升,必須先聲明。再調用
- 同一個作用域下不可以重複定義同一個名稱
- 塊級作用域
- 聲明之後就得初始化,不能隻聲明不指派
- 聲明的為隻讀常量,不能改變
箭頭函數
簡化了函數的定義
var f = v =>v; //箭頭函數後的值為return值
等同于
var f = function(){
return v
}
Set 去重
const a = new Set();
添加
a.add(1)
鍊式添加:a.add(1).add(2)......
類型轉換
将set轉為數組
- var a = Array.from(a)
- [...new Set([1,2,3,42,2,1,2])] //...為擴充運算符。var a = [1,2,3] ; var b = ...a 值為 1,2,3 去掉了括号
map
const m = new Map();
添加資料
m.set('id',1).set('name','test') 添加時為鍵值對添加 鍵可以為任何類型
循環 for of
for( let [k,v] of m){
.......
}