JS 运算符
2019-03-13 本文已影响0人
antimony
NaN是什么? 有什么特别之处?
NaN 表示不是一个数字(Not-A-Number)。
NaN===NaN
是false。
以下代码的输出结果是?
var a = 1;
a+++a;
typeof a+2;
输出:3
"number2"
以下代码的输出结果是?为什么?
console.log(1+1);
console.log("2"+"4");
console.log(2+"4");
console.log(+"4");
输出:
console.log(1+1);
数字加法 2
console.log("2"+"4");
字符串拼接24
console.log(2+"4");
字符串拼接24
console.log(+"4");
类型转换为4
==与===有什么区别?
我们知道可以使用==或===判断两个值的相等性,其中区别相信大家清楚,===是严格意义的相等,只需注意NaN和NaN不等就行了。而使用==的时候,javascript会帮我们做类型转换,造成一些匪夷所思的结果,那么使用==的时候会在哪些情况下做类型转换,又会换成什么样子?
- 如果两个值类型相同,则执行严格相等的运算
- 如果两个值的类型不同
1.如果一个是null,一个是undefined,那么相等
2.如果一个是数字,一个是字符串,先将字符串转为数字,然后比较
3.如果一个值是true/false则将其转为1/0比较
4.如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
5.其它就不相等了