解構(gòu)賦值允許指定默認(rèn)值舔糖。
ES6內(nèi)部使用嚴(yán)格相等運(yùn)算符(===),判斷一個(gè)位置是否有值莺匠。所以金吗,如果一個(gè)數(shù)組成員不嚴(yán)格等于undefined,默認(rèn)值是不會(huì)生效的趣竣。
例如:
上面代碼中摇庙,如果一個(gè)數(shù)組成員是null,默認(rèn)值就不會(huì)生效遥缕,因?yàn)閚ull不嚴(yán)格等于undefined卫袒。
如果默認(rèn)值是一個(gè)表達(dá)式,那么這個(gè)表達(dá)式只有在用到的時(shí)候单匣,才會(huì)求值夕凝。
雖然將函數(shù)f賦值給變量x,但是因?yàn)閤能取到值,所以函數(shù)f是不會(huì)執(zhí)行的户秤,最后輸出的結(jié)果是x的值為1.
默認(rèn)值可以引用解構(gòu)賦值的其他變量码秉,前提是該變量必須已經(jīng)聲明。
最后一個(gè)表達(dá)式會(huì)報(bào)錯(cuò)鸡号,是因?yàn)閤用到默認(rèn)值y時(shí)转砖,y還沒(méi)有聲明。