第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關(guān)于 -[1,] 的疑問

關(guān)于 -[1,] 的疑問

藍(lán)山帝景 2019-04-13 08:36:36
發(fā)現(xiàn)js中-[1,]的返回值為-1以此類推,-[2,]或者+[2,],返回值為-2和2;但是如果是+[1,2]或者是-[1,2],則返回值為NaN請各位大神解釋下這其中的原理
查看完整描述

2 回答

?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個贊

這里面涉及兩個問題:一是JavaScript數(shù)組中trailingcomma的處理,二是JavaScript中數(shù)組的類型轉(zhuǎn)換。
關(guān)于trailingcomma:
ES5忽略trailingcomma,認(rèn)為[1,]與[1]一樣,都表示一個有單一元素的數(shù)組(但只實(shí)現(xiàn)了ES3的JS引擎可能不這么認(rèn)為)。
//現(xiàn)代瀏覽器或Node.js環(huán)境
[1,].length//=>1
[1].length//=>1
ES5Spec:
11.1.4:Edition5clarifiesthefactthatatrailingcommaattheendofanArrayInitialiserdoesnotaddtothelengthofthearray.ThisisnotasemanticchangefromEdition3butsomeimplementationsmayhavepreviouslymisinterpretedthis.
所以,在實(shí)現(xiàn)了ES5的JS引擎里,[1,]實(shí)際上就是[1]。
關(guān)于數(shù)組的類型轉(zhuǎn)換:
基本步驟:
調(diào)用內(nèi)部toPrimitive方法---->調(diào)用[[DefaultValue]]方法(以Number作為hint)---->調(diào)用數(shù)組的valueOf()方法,然而并未得到原始值---->調(diào)用數(shù)組的toString()方法,得到String類型值---->用一元取反運(yùn)算符(-)或運(yùn)算符(+)處理,得到Number類型值。
-[1]的處理過程:
-[1]------>-'1'--------->-1
-[1,2]的處理過程:
-[1,2]------>-'1,2'--------->-NaN
-[]的處理過程:
-[]-------->-''--------->-0
這是一個看標(biāo)準(zhǔn)就能解決的問題,不過在生產(chǎn)環(huán)境中,不要在數(shù)組中使用trailingcomma。
                            
查看完整回答
反對 回復(fù) 2019-04-13
  • 2 回答
  • 0 關(guān)注
  • 377 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號