[]+[]==="" ????
二元运算符'+'可以对两个数字做加法也可以做字符串连接
加号的转换规则优先考虑字符串连接
————以上摘自犀牛书第六版P70
这是加号运算符的规则所致
除非前后两个操作数都不是类字符串才会转化
如果规则是优先考虑数字的算数运算 那么[]+[]就是0了
在这里对操作数两边都进行了转化为字符串的隐式转换
类似的还有:[] == ! []
!对[]进行了变为布尔值的转换
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
可以看一下这个:
http://www.cnblogs.com/ziyunf...
简单的来说:
[] + []
会先调用[]
的valueOf
方法,如果valueOf
返回的是基本类型,则使用这个基本类型值,如果返回的不是基本类型,则舍弃valueOf
方法,转而调用toString
方法。所以[] + [] = "" + "" = ""
可以写一个简单的例子来验证它: