js 中 “+” 和“-”
当作一元操作符和二元操作符的作用是不同的
一元操作符
“+” 当作作用是尝试转换成number类型
+1 // 1
+'1' // 1
+true // 1
+null // 0
+'a' // NaN
+{
valueOf: () => 1
} // 1 调用valueOf方法
+function(val){ return val;} //NaN
”-“ 转换操作符符号
var x = 3;
y = -x; // y = -3, x = 3
二元操作符
“+” 类型不同会有不同动作。
1是数值加法,
2是字符串拼接
== 规则:==
如果两个操作值都是数值,则数组相加
如果有一个操作值为字符串类型,则将另一个操作值转换为字符串,最后连接起来
// Number + Number -> 数字相加
1 + 2 // 3
// Boolean + Number -> 数字相加
true + 1 // 2
// Boolean + Boolean -> 数字相加
false + false // 0
// Number + String -> 字符串连接
5 + "foo" // "5foo"
// String + Boolean -> 字符串连接
"foo" + false // "foofalse"
// String + String -> 字符串连接
"foo" + "bar" // "foobar"
”-“ 只是做减法
5 - 3 // 2
3 - 5 // -2
"foo" - 3 // NaN