进行值的比较时,null会被转化为数字,因此它被转化为了0。这就是为什么(3)中null >= 0返回值是 true,(1)中null > 0返回值是 false。 另一方面,undefined和null在相等性检查==中不会进行任何的类型转换,它们有自己独立的比较规则,所以除了它们之间互等外,不会等于任何其他的值。这就解释了为什么(2)中null =...
今天在优化前端代码时,偶然发现一个为null的变量在判断>=0时返回为true,但是>0或==0都返回false,然后又试了以下<0和<=0,发现分别为false和true; 因此,发现了一个有意思的问题:null>0,null==0,null<0都为假,但null>=0,null<=0都为真;难道 a>=0 不是我们常规理解的 (a>0 || a==0) 吗? 于是...
alert( 0 === false ); // false,因为被比较值的数据类型不同 同样的,与“不相等”符号 != 类似,“严格不相等”表示为 !==。 严格相等的运算符虽然写起来稍微长一些,但是它能够很清楚地显示代码意图,降低你犯错的可能性。 对null 和 undefined 进行比较 当使用 null 或 undefined 与其他值进行比较时,其...
if(object.property===null){console.log("对象的属性存在,且值为null");}elseif(object.property===undefined){console.log("对象的属性不存在");}else{console.log("对象的属性存在,且值不为null");} 需要注意的是,与null进行比较时,应使用严格相等运算符(===),而不是相等运算符(==),因为相等运算符...
这几个值中也有不同,其中undefined和null比较特殊,虽然null的类型是object,但是null不具有任何对象的特性,就是说我们并不能执行null.toString()、null.constructor等对象实例的默认调用。所以从这个意义上来说,null和undefined有最大的相似性。看看null == undefined的结果(true)也就更加能说明这点。不过相似归相似,...
运行上述代码,弹出的对话框应该显示的都是true。也就是说,false是布尔类型对象,0是数字类型对象,空字符串是字符串类型对象,null是object对象,undefined类型还是undefined。 互等性 当你用==操作符将false对象和其他对象进行比较的时候,你会发现, 只有0和空字符串等于false;undefined和null对象并不等于false对象,而...
运行上述代码,弹出的对话框应该显示的都是true。也就是说,false是布尔类型对象,0是数字类型对象,空字符串是字符串类型对象,null是object对象,undefined类型还是undefined。 互等性 当你用==操作符将false对象和其他对象进行比较的时候,你会发现,只有0和空字符串等于false;undefined和null对象并不等于false对象,而null和...
alert(null==0) 上面的代码会弹出什么来呢?False?True?其实是false。"null==0"的时候是特殊处理,不会转为数字类型,不会转化为数值,但如果左面是字符串右面是数值就会被转化。“null”是对象(空对象, 没有任何属性和方法)。而“0”是数字。前面说过“==”并不转换类型,只是比较。所以,为false。
运行上述代码,弹出的对话框应该显示的都是true。也就是说,false是布尔类型对象,0是数字类型对象,空字符串是字符串类型对象,null是object对象,undefined类型还是undefined。 互等性 当你用==操作符将false对象和其他对象进行比较的时候,你会发现,只有0和空字符串等于false;undefined和null对象并不等于false对象,而null和...
JavaScript中null 是一个对象,为空。typeof null 返回 'object' 。 null 是 JavaScript 保留关键字。1、javascript中"null==0"的时候是特殊处理,不会转为数字类型,不会转化为数值。2、如果左面是字符串右面是数值则会被转化。3、null是对象(空对象, 没有任何属性和方法)。而 0 是数字。4、...