var let const 的用法
var 定義的變量 1.可以到處去用,2在作用域里變量會被提升,3.可以重復(fù)定義多個相同的變量,4.定義的變量可以被重復(fù)賦值,也可以不賦值。
let 定義變量? 1.只能在當(dāng)前的塊級作用域鏈里面使用, 2變量不會被提升, 3.不可以重復(fù)定義多個相同變量, 4定義的變量可以被重復(fù)賦值,也可以不賦值。
? ?let name="lisi",age=18,sex="nan"?
? ? ? ? ? ? let [name,age,sex]=["lisi",18,"nan"]
? ? ? ? ? ? let {name,age,sex}={name:"lisi",age:"18",sex:"nan"}//注意前面的對象里面的key要和后面對象的key命名要一致才能解析。? ?
? ? ? ? ? ? console.log(name)
? ? ? ? ? ? console.log(age)
? ? ? ? ? ? console.log(sex)
? ? ? ? ? ? ? let {name,age,friends,pet}={name:"lisi",age:"18",friends:["lulu","王五"],pet:{name:"王xx",age:20}}
? ? ? ? ? ? console.log(name)
? ? ? ? ? ? console.log(age)
? ? ? ? ? ? console.log(friends)
? ? ? ? ? ? console.log(pet)
const 定義的變量? 1.只能在當(dāng)前的塊級作用域鏈里面使用, 2變量不會被提升, 3.不可以重復(fù)定義多個相同變量, 4定義的變量必須要賦值,而且也不允許被修改,如果想修改,只能把定義成復(fù)雜類型,
例如:?
const? a={nane:"張三"}
a.nane="李四";
console.log(a);//{nane:"李四"}; 因?yàn)榛绢愋秃蛷?fù)雜類型數(shù)據(jù)存放的方式不一樣,一個是存放在棧路面,一個是放在推里面,所以復(fù)雜類型修改的是它的地址里面數(shù)據(jù),
? ? let set = new Set([1, 2, 4, 5, 6, 1, 3, 4, 2, 3]);? //let的數(shù)組去重
? ? ? ? // let set = new Set();
? ? ? ? console.log(set);
? ? ? ? console.log(set.entries().next().value[0]); //1 ,通過這種方法取到集合里面的元素,但是也只能拿到一個,要想取的后面元素還沒找到方法,?