珠峰培训

js中不同类型作比较的规律(布尔运算)

作者:珠峰培训

2014-06-14 21:44:47

208

 

js中不同类型作比较的规律(布尔运算)

珠峰培训原创教材

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

类型

类型

规律

其它说明

对象

对象

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

 

对象

字符串

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

 

对象

布尔类型

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

 alert([]==false);

alert([]==0)

alert([1]==1);

alert([1]==true)

alert([2]==true)

对象

数字

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

 

数字

布尔

是进行的数字的比较

 

数字

字符串

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

 

布尔

 

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

 

null

undefined

true

 

null,undefined

和其它类型

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

 alert(null==false)

alert(null==0)

alert(null=="");;

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

类型

规律

示例

object

都是true 

 alert(!![])

number

只是0和NaN是false

 alert(!!0);

string

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

 alert(!!"");

function

都是ture

 

null,undefined

都是false