隐式类型转换包括:
isNaN() , ++ , -- , +/-(一元正负) , + , * , % , && , || , ! , < , > , <= , >= , == , !=
其实隐式类型转换内部调用的是显式的方法
1.isNaN();
先将放在()中的内容放到Number()中转换,再进行判断是不是NaN。
例
console.log(isNaN("123")) //false
console.log(isNaN("abc")) //true
2.++/-- +/-
若将++/--,+/-放在前面如:++a、+a,在还没有运算前会执行Number(a)。
sp:当+两侧有一个式字符串时,则调用String()。
3.*,%
乘和模将两边都调用Number()
var num = "a" * 1;
console.log(typeof (num) + num) //number NaN
- &&,||,!
调用Boolean()
5.< , > , <= , >= , == , !=
同样具有隐式类型转换 Number()
var a = 1 == "1"; // true
var a = 1 == true; // true
练习
false > true //false
2>1>3 //false
2>3<1 //true
依次进行比较,也就是依次进行隐式类型转换。
有趣的发现😂(sp)
undefined < 0 //false
undefined > 0 //false
undefined == 0 //false
null < 0 //false
null > 0 //false
null == 0 //false
null == undefined //true
NaN == NaN //false
NaN不等于一切数,包括自己!
javascript类型转换练习题入口 (9至20题)