最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

JavaScript中“+”的陷阱深刻理解_javascript技巧

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:05:42
文檔

JavaScript中“+”的陷阱深刻理解_javascript技巧

JavaScript中+的陷阱深刻理解_javascript技巧:一、兩個(gè)中括號(hào)相加 [] + [] 中括號(hào)沒(méi)有語(yǔ)句塊的作用,因此這里的兩個(gè)中括號(hào)就是一個(gè)數(shù)組。兩個(gè)數(shù)組(對(duì)象類(lèi)型)相加先要將其轉(zhuǎn)換成值類(lèi)型(基本類(lèi)型)。 1,轉(zhuǎn)成值類(lèi)型調(diào)用valueOf,[]的valueOf()還是自己 代碼如下: var arr = []; arr.v
推薦度:
導(dǎo)讀JavaScript中+的陷阱深刻理解_javascript技巧:一、兩個(gè)中括號(hào)相加 [] + [] 中括號(hào)沒(méi)有語(yǔ)句塊的作用,因此這里的兩個(gè)中括號(hào)就是一個(gè)數(shù)組。兩個(gè)數(shù)組(對(duì)象類(lèi)型)相加先要將其轉(zhuǎn)換成值類(lèi)型(基本類(lèi)型)。 1,轉(zhuǎn)成值類(lèi)型調(diào)用valueOf,[]的valueOf()還是自己 代碼如下: var arr = []; arr.v

一、兩個(gè)中括號(hào)相加
[] + []
中括號(hào)沒(méi)有語(yǔ)句塊的作用,因此這里的兩個(gè)中括號(hào)就是一個(gè)數(shù)組。兩個(gè)數(shù)組(對(duì)象類(lèi)型)相加先要將其轉(zhuǎn)換成值類(lèi)型(基本類(lèi)型)。
1,轉(zhuǎn)成值類(lèi)型調(diào)用valueOf,[]的valueOf()還是自己
代碼如下:
var arr = [];
arr.valueOf() === arr; // true

2,轉(zhuǎn)成字符串,[]的toString是空字符串
代碼如下:
[].toString(); // ""
String([]) // ""

結(jié)果出來(lái)了。兩個(gè)空字符串相加,結(jié)果仍然是空字符串。即這里的“+”指字符串連接而非數(shù)字相加。

二、大括號(hào)和中括號(hào)的相加
代碼如下:
{} + []

注意這里的大括號(hào)仍然不是對(duì)象直接量,而是空語(yǔ)句塊。因此可以去掉它,即相當(dāng)于
代碼如下:
+ []

注意,這時(shí)由之前看似的兩個(gè)運(yùn)算數(shù)變成了實(shí)際的單運(yùn)算數(shù)。而“+”運(yùn)算符當(dāng)只有一個(gè)運(yùn)算數(shù)時(shí)只代表一個(gè)意思:算術(shù)加運(yùn)算。即這里沒(méi)有字符串連接的意思了。
中括號(hào)的toString()是空字符串,又相當(dāng)于
代碼如下:
+ ""

“+”代表算術(shù)加運(yùn)算,字符串非數(shù)字,因此將其轉(zhuǎn)換成數(shù)字類(lèi)型。空字符串轉(zhuǎn)成數(shù)字類(lèi)型在上一篇提到過(guò),為0。
那么最后的結(jié)果就是0。

三、中括號(hào)和大括號(hào)相加
代碼如下:
[] + {}

與上面的對(duì)比,只是中括號(hào)和小括號(hào)交換了順序。結(jié)果卻不相同。大括號(hào)放到右邊后,與上面討論的大括號(hào)的意義不同了。這里的大括號(hào)就是一個(gè)對(duì)象直接量而非語(yǔ)句塊。
“+” 兩邊的運(yùn)算數(shù)轉(zhuǎn)成值類(lèi)型分別是:"" 和 "[object Object]"。這時(shí) "+" 表示字符串連接。即
代碼如下:
"" + "[object Object]"

結(jié)果是 “[object Object]”。

四、小括號(hào)也和它們相加試試
突發(fā)奇想!好吧,小括號(hào)雖然有多義性,但它不能作為運(yùn)算數(shù)。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JavaScript中“+”的陷阱深刻理解_javascript技巧

JavaScript中+的陷阱深刻理解_javascript技巧:一、兩個(gè)中括號(hào)相加 [] + [] 中括號(hào)沒(méi)有語(yǔ)句塊的作用,因此這里的兩個(gè)中括號(hào)就是一個(gè)數(shù)組。兩個(gè)數(shù)組(對(duì)象類(lèi)型)相加先要將其轉(zhuǎn)換成值類(lèi)型(基本類(lèi)型)。 1,轉(zhuǎn)成值類(lèi)型調(diào)用valueOf,[]的valueOf()還是自己 代碼如下: var arr = []; arr.v
推薦度:
標(biāo)簽: js javascript 陷阱
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專(zhuān)題
Top