js不同类型作比较

引用自

http://www.zhufengpeixun.cn/jishuziliao/javaScriptzhuanti/2014-06-14/300.html   

不同类型间的比较,规律如下

 

类型

类型

规律

其它说明

对象

对象

比较是不是同一个内存地址

 

对象

字符串

对象先转化为字符串,然后做比较

 

对象

布尔类型

两边都要先转为数字(false是0,true是1)。是对象类型先隐式调用toString方法,然后再Number()

 alert([2]==true)未false,转为2==1 false

对象

数字

对象要转为数字,再进行比较(对象先隐式调用toString方法转化为字符串,然后再把这个字符串轮化为数字,相当于把这个字符串放到Number这个方法中)

 

数字

布尔

是进行的数字的比较

 

数字

字符串

把字符串转化为数,再比较

 

布尔

 

把两边都要转化为数字再进行比较

 

null

undefined

true

 

null,undefined

和其它类型

null和undefined和其它类型比较都是false(这两个对象没toString方法),和自身比较是true。

 

(undefined==undefined); true
(null==null);true

NaN

和其它类型

和说有比较都为false,和自身比较也为fasle,判断是否为NaN使用isNaN()

(NaN==NaN)   false

自身做布尔运算的时候的转换

类型

规律

示例

object

都是true 

 alert(!![])

number

只是0和NaN是false

 alert(!!0);

string

只有空字符串是false(不是空格字符串)

 alert(!!"");

function

都是ture

 

null,undefined

都是false

 

 

posted @ 2017-03-16 09:42  Always_July  阅读(1256)  评论(0编辑  收藏  举报