在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ []+[]==="" 空數(shù)組+空數(shù)組=空字符串 為什么???

[]+[]==="" 空數(shù)組+空數(shù)組=空字符串 為什么???

[]+[]==="" ????

回答
編輯回答
蟲(chóng)児飛
2018年4月15日 03:44
編輯回答
故人嘆

二元運(yùn)算符'+'可以對(duì)兩個(gè)數(shù)字做加法也可以做字符串連接
加號(hào)的轉(zhuǎn)換規(guī)則優(yōu)先考慮字符串連接
————以上摘自犀牛書(shū)第六版P70
這是加號(hào)運(yùn)算符的規(guī)則所致
除非前后兩個(gè)操作數(shù)都不是類字符串才會(huì)轉(zhuǎn)化

如果規(guī)則是優(yōu)先考慮數(shù)字的算數(shù)運(yùn)算 那么[]+[]就是0了
在這里對(duì)操作數(shù)兩邊都進(jìn)行了轉(zhuǎn)化為字符串的隱式轉(zhuǎn)換
類似的還有:[] == ! []
!對(duì)[]進(jìn)行了變?yōu)椴紶栔档霓D(zhuǎn)換

2017年11月8日 07:18
編輯回答
終相守

可以看一下這個(gè):
http://www.cnblogs.com/ziyunf...

簡(jiǎn)單的來(lái)說(shuō):

[] + []會(huì)先調(diào)用[]valueOf方法,如果valueOf返回的是基本類型,則使用這個(gè)基本類型值,如果返回的不是基本類型,則舍棄valueOf方法,轉(zhuǎn)而調(diào)用toString方法。

[].valueOf() => [] // 非基本類型
[].toString() => "" // 基本類型

所以[] + [] = "" + "" = ""

可以寫(xiě)一個(gè)簡(jiǎn)單的例子來(lái)驗(yàn)證它:

const a = [] // 定義一個(gè)空數(shù)組
a.valueOf = () => 3 // 改寫(xiě)它的valueOf方法
a + a // 6
a.valueOf = () => ([1, 2, 3])
a + a // ""
a.toString = () => 'haha'
a + a // 'hahahaha'
a.toString = () => ([1, 2, 3])
a + a // 報(bào)錯(cuò)啦
2017年2月27日 19:01
編輯回答
蔚藍(lán)色

請(qǐng)看如下測(cè)試和此鏈接:http://www.cnblogs.com/ziyunf...

clipboard.png

2018年8月25日 05:54
編輯回答
心夠野

這是js的運(yùn)算符對(duì)數(shù)據(jù)的隱式轉(zhuǎn)換造成的。

js中+號(hào)運(yùn)算符會(huì)對(duì)引用類型的數(shù)據(jù)調(diào)用toString方法轉(zhuǎn)為字符串

2018年5月25日 07:57
編輯回答
解夏
[].toString()+[].toString() === ""
2018年2月25日 19:18