一.var? let? const
(1). 在js中? 通常使用 var會發(fā)生變量提升芍耘,即腳本開始運行時杰扫,變量已經(jīng)存在了,但是沒有值吩屹,所以會輸出undefined跪另。
而let不會發(fā)生變量提升,這表示在聲明它之前,變量是不存在的煤搜,這時如果用到它免绿,就會拋出一個錯誤。
(2).var 是函數(shù)級作用域擦盾,let是塊級作用域:
? (3) let不允許在相同作用域內(nèi)嘲驾,重復(fù)聲明同一個變量
(4) const聲明一個只讀的常量? 一旦聲明,常量的值就不能改變
(5) const命令聲明的常量也是不提升迹卢,只能在聲明的位置后面使用
(6) const聲明的常量辽故,也與let一樣不可重復(fù)聲明
(7) 對于復(fù)合類型的變量,變量名不指向數(shù)據(jù)腐碱,而是指向數(shù)據(jù)所在的地址誊垢。
? ? ?const命令只是保證變量名指向的地址不變,并不保證該地址的數(shù)據(jù)不變, (***)所以將一個對象聲明為常量必須非常小心喂走。
二.數(shù)組 對象? 函數(shù)的解構(gòu)
1.數(shù)組的解構(gòu)
2.對象的解構(gòu)
3.函數(shù)的解構(gòu)
三. Set 和 Map的使用
1.Set用法:
? ? ES6提供了新的數(shù)據(jù)結(jié)構(gòu)Set殃饿,它類似于數(shù)組,但是成員的值都是唯一的缴啡,沒有重復(fù)的值壁晒。
2.Map用法:
ES6提供了Map數(shù)據(jù)結(jié)構(gòu)瓷们。它類似于對象业栅,也是鍵值對的集合,但是“鍵”的范圍不限于字符串谬晕,各種類型的值(包括對象)都可以當(dāng)作鍵碘裕。
Object結(jié)構(gòu) 和 Map解構(gòu)的區(qū)別:
? ? ?Object結(jié)構(gòu)提供了“字符串—值”的對應(yīng)
? ? ?Map結(jié)構(gòu)提供了“值—值”的對應(yīng),是一種更完善的Hash結(jié)構(gòu)實現(xiàn)
如果你需要“鍵值對”的數(shù)據(jù)結(jié)構(gòu)攒钳,Map比Object更合適
3.綜合使用
四.箭頭函數(shù) 和 this
1.箭頭函數(shù)
2.注意
五.Promise使用
^_^ 一個在路上的前端小白帮孔,歡迎評論指正。
原文:https://www.cnblogs.com/zhihaospace/p/6241963.html
推薦網(wǎng)站:http://es6.ruanyifeng.com/