最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2012年12月04日 10:12:56   作者:  
本文將詳細(xì)介紹JavaScript中“+”的一些錯(cuò)誤應(yīng)用,需要的朋友可以參考下
一、兩個(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()還是自己
復(fù)制代碼 代碼如下:

var arr = [];
arr.valueOf() === arr; // true

2,轉(zhuǎn)成字符串,[]的toString是空字符串
復(fù)制代碼 代碼如下:

[].toString(); // ""
String([]) // ""

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

二、大括號(hào)和中括號(hào)的相加
復(fù)制代碼 代碼如下:

{} + []

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

+ []

注意,這時(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)于
復(fù)制代碼 代碼如下:

+ ""

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

三、中括號(hào)和大括號(hào)相加
復(fù)制代碼 代碼如下:

[] + {}

與上面的對(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í) "+" 表示字符串連接。即
復(fù)制代碼 代碼如下:

"" + "[object Object]"

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

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

相關(guān)文章

最新評(píng)論

公安县| 神木县| 万荣县| 通道| 涪陵区| 二连浩特市| 敦化市| 孟村| 安福县| 徐汇区| 陆丰市| 汉沽区| 宜城市| 宜宾市| 白沙| 乌拉特前旗| 噶尔县| 老河口市| 疏勒县| 仁布县| 扎兰屯市| 格尔木市| 永年县| 柞水县| 金平| 赤壁市| 乐平市| 东阳市| 翁牛特旗| 达州市| 海盐县| 西乌珠穆沁旗| 芦山县| 育儿| 新津县| 邹城市| 阿尔山市| 丹凤县| 昌吉市| 河源市| 温泉县|