JavaScript隐式类型转换

隐式类型转换包括:

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
  1. &&,||,!
    调用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题)

你可能感兴趣的:(JavaScript隐式类型转换)