JS隐式类型计算:!+1, []+{}, {}+[],

2019-08-25  本文已影响0人  小妍妍说
//如果一个为string,则将另一转换成string,再字符串拼接
//如果对象为{} [] 则将两个转换成字符串string,再拼接
[]+[]          =""
[]+{}          ="[object Object]"
{}+[]          =0     //js把{}当成一个代码块,so:{}+[]=+[]=0 

//js中+和-开头的的变量会被转换成Number类型,不是number类型的会转成NaN
+[]            =0
+{}            =NaN
+""            =0
+"a"           =NaN
{}+{}          ="[object Object][object Object]"
true+true      =2

//先计算第二个操作数,再取非
!+[]          =true   //先计算+[]=0   而!0=true  (非0等于true)
!+1           =false   //非1为false
!+2           =false

//boolen与[]或{}相加时,转换成字符串再拼接
1+[]          ="1"   反之同理
true+[]       ="true"   反之同理
1+{}          ="1[object Object]"
true+{}       ="true[object Object]"
1+{a:1}       ="1[object Object]"
上一篇 下一篇

猜你喜欢

热点阅读