加法运算符
1.如果运算子是对象,先自动转成原始类型的值(即先执行该对象的valueOf方法,如果结果还不是原始类型的值,再执行toString方法;如果对象是Date实例,则先执行toString方法)。
2.两个运算子都是原始类型的值以后,只要有一个运算子是字符串,则两个运算子都转为字符串,执行字符串连接运算。
3.否则,两个运算子都转为数值,执行加法运算。
数值运算符的作用在于可以将任何值转为数值(与Number函数的作用相同)。
负数值运算符(-),也同样具有将一个值转为数值的功能,只不过得到的值正负相反
+ '1' // 1
+true // 1
+[] // 0
+{} // NaN
Boolean()
除了以下六个值的转换结果为false,其他的值全部为true。
undefined
null
-0
0或+0
NaN
''(空字符串)
所有对象(包括空对象)的转换结果都是true
两个复合类型(对象、数组、函数)的数据比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个对象。
{} === {} // false
[] === [] // false
(function (){} === function (){}) // false
网友评论