久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - ES6 數(shù)組解構(gòu)賦值 默認(rèn)賦值

瀏覽:142日期:2023-09-03 18:04:03

問(wèn)題描述

在看到阮一峰的ES6教程解構(gòu)賦值,默認(rèn)值時(shí),這個(gè)地方?jīng)]太看懂。原文鏈接

注意,ES6 內(nèi)部使用嚴(yán)格相等運(yùn)算符(===),判斷一個(gè)位置是否有值。所以,如果一個(gè)數(shù)組成員不嚴(yán)格等于undefined,默認(rèn)值是不會(huì)生效的

function f() { console.log(’aaa’);}let [x = f()] = [1];

書(shū)上說(shuō)上面這段代碼等價(jià)于下面這段

let x;if ([1][0] === undefined) { x = f();} else { x = [1][0];}

請(qǐng)問(wèn)一下這個(gè)[1][0]是哪里來(lái)的?不應(yīng)該是下面這樣的嗎?

let x;if (1 === undefined) { x = f();} else { x = 1;}

問(wèn)題解答

回答1:

數(shù)組解構(gòu)時(shí),原理是這樣的,把一個(gè)或者多個(gè)變量放到數(shù)組A中,然后讓這個(gè)數(shù)組A等于另一個(gè)數(shù)組B,那么解構(gòu)時(shí)A數(shù)組某個(gè)位置的值就等于B數(shù)組對(duì)應(yīng)位置的值。

let [x = f()] = [1];

這段代碼的意思就是,首先創(chuàng)建一個(gè)數(shù)組A,數(shù)組A中的第一項(xiàng)是x,然后又有一個(gè)數(shù)組B,B = [1].然后令 A = B.最后的效果就是A[0] = B[0],即x=B[0],也即x=[1][0]。所以在判斷是不是等于undefined時(shí),要這樣

if([1][0] === undefined)回答2:

右邊[1]中的1才是對(duì)應(yīng)x呀,即[1][0]對(duì)應(yīng)x

回答3:

解構(gòu),解構(gòu),解構(gòu)。。。所以目的是把等號(hào)右邊的東西解開(kāi),所以肯定是要把[1]給解開(kāi)的。

所以let [x]=[1],那么x就是[1][0],也就是1。所以其實(shí)x的賦值是根據(jù)[1][0]來(lái)判斷的。

不知道說(shuō)的理解不理解,還是給文檔吧:

https://developer.mozilla.org...

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 迭部县| 津市市| 玉林市| 长寿区| 河池市| 衡东县| 株洲市| 宁波市| 三门峡市| 互助| 湟中县| 乌鲁木齐县| 四平市| 武安市| 平南县| 清原| 长垣县| 交口县| 万盛区| 宣城市| 雷山县| 清丰县| 阳信县| 乐东| 苏尼特右旗| 平远县| 北川| 西和县| 北宁市| 肇东市| 孝感市| 霞浦县| 杨浦区| 东至县| 高雄市| 百色市| 锡林郭勒盟| 宁武县| 汾西县| 梁山县| 德惠市|