ES6(聲明與解構(gòu))

1.聲明

? const命令:聲明常量
? let命令:聲明變量

作用域

? 全局作用域
? 函數(shù)作用域:function() {}
? 塊級(jí)作用域:{}

作用范圍

? var在全局代碼中執(zhí)行
? const和let只能在代碼塊中執(zhí)行

賦值使用

? const聲明常量后必須立馬賦值
? let聲明變量后可立馬賦值或使用時(shí)賦值
? 聲明方法:var、const、let、function、class、import

重點(diǎn)難點(diǎn)

? 不允許重復(fù)聲明
? 未定義就使用會(huì)報(bào)錯(cuò):const和let不存在變量提升
? 暫時(shí)性死區(qū):在代碼塊內(nèi)使用const和let聲明變量之前,該變量都不可用

2.解構(gòu)賦值

只要等號(hào)兩邊的模式相同,左邊的變量就會(huì)被賦予對(duì)應(yīng)的值

字符串解構(gòu):const [a, b, c, d, e] = "hello" // console.log(a) 結(jié)果 h

對(duì)象解構(gòu)

? 形式:const { x, y } = { x: 1, y: 2 }
? 默認(rèn):const { x, y = 2 } = { x: 1 }
? 改名:const aa = { x, y: z } = { x: 1, y: 2 }//console.log(aa,z)結(jié)果{x: 1, y: 2} 2

數(shù)組解構(gòu)

? 規(guī)則:數(shù)據(jù)結(jié)構(gòu)具有Iterator接口可采用數(shù)組形式的解構(gòu)賦值 // Array自帶Iterator
? 形式:const [x, y] = [1, 2]
? 默認(rèn):const [x, y = 2] = [1]

函數(shù)參數(shù)解構(gòu)

? 數(shù)組解構(gòu):function Func([x = 0, y = 1]) {} // 參數(shù)默認(rèn)值
? 對(duì)象解構(gòu):function Func({ x = 0, y = 1 } = {}) {}
函數(shù)move的參數(shù)是一個(gè)對(duì)象,通過對(duì)這個(gè)對(duì)象進(jìn)行解構(gòu),得到變量x和y的值。如果解構(gòu)失敗,x和y等于默認(rèn)值。
例:function move({x = 0, y = 0} = {}) {return [x, y];}
move({x: 3, y: 8}); // [3, 8]
move({x: 3}); // [3, 0]
move({}); // [0, 0]
move(); // [0, 0]

應(yīng)用場(chǎng)景

? 交換變量值:[x, y] = [y, x]
? 返回函數(shù)多個(gè)值:const [x, y, z] = Func()
? 提取JSON數(shù)據(jù):const { name, version } = packageJson
? 定義函數(shù)參數(shù)默認(rèn)值:function Func({ x = 1, y = 2 } = {}) {}
? 遍歷Map結(jié)構(gòu):for (let [key, value] of Map) {}
? 輸入模塊指定屬性和方法:const { readFile, writeFile } = require("fs")

重點(diǎn)難點(diǎn)

? 匹配模式:只要等號(hào)兩邊的模式相同,左邊的變量就會(huì)被賦予對(duì)應(yīng)的值
? 解構(gòu)賦值規(guī)則:只要等號(hào)右邊的值不是對(duì)象或數(shù)組,就先將其轉(zhuǎn)為對(duì)象
? 解構(gòu)默認(rèn)值生效條件:屬性值嚴(yán)格等于undefined
? 解構(gòu)遵循匹配模式
? 解構(gòu)不成功時(shí)變量的值等于undefined
? undefined和null無(wú)法轉(zhuǎn)為對(duì)象,因此無(wú)法進(jìn)行解構(gòu)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容