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

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

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

瀏覽:141日期: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)文章:
主站蜘蛛池模板: 德安县| 紫阳县| 通州市| 石楼县| 洱源县| 府谷县| 盈江县| 昭通市| 安阳县| 建阳市| 浪卡子县| 临沧市| 沭阳县| 平塘县| 延庆县| 兴宁市| 台湾省| 万年县| 南充市| 东丽区| 涟水县| 平果县| 云龙县| 汶川县| 嘉峪关市| 准格尔旗| 江永县| 麻栗坡县| 台东市| 陇西县| 嘉峪关市| 江北区| 晋中市| 敦化市| 绩溪县| 乌拉特中旗| 确山县| 虎林市| 甘泉县| 樟树市| 南川市|