1. ture或者false的值
if判断中会被隐式转换成false的boolean类型的值有 false, 0, undefined , null , ‘‘, NaN(not a number)
除此外 其他的值会被认为true, 包括 ‘0‘, ‘false‘, 空function, 空数组([]),空对象({})
var a = !!(0);// 等价于 var a = false; var a = !!(‘0‘); // 等价于 var a = true;
2. falsy值的比较
值为 false , ‘‘, 0 三者进行值比较,如下:
alert(false == ‘‘);//true alert(false == 0);//true alert(0 == ‘‘);//true
false,‘‘,0 与 undefined , null 之间的比较,结果如下:
alert(false == undefined);//false alert(‘‘ == null);//false alert(‘‘ == undefined);//false
alert(undefined == undefined);//true alert(null == null);//true
可以看到,0, ‘‘, false 这三者进行值比较是相等的,undefinde, null 除与自身相比外,与其他任何类型值进行比较都是不等的
NaN与其他类型falsy values值比较情况如下:
alert(false == NaN);//false alert(0 == NaN);//false alert(‘‘ == NaN);//false alert(undefined == NaN);//false alert(null == NaN);//false alert(NaN == NaN);//false
由结果得知,NaN与任何类型的值都不相等,包括自身. 如何判断NaN类型的值
alert(typeof(NaN));//number alert(isNaN(NaN));//true
时间: 2024-10-17 05:14:28