打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
js 中 相等(==) 和恒等( === )的区别

== 在表达式两边的数据类型不一致时,会隐式转换为相同数据类型,然后对值进行比较。

=== 不会进行类型转换,在比较时除了对值进行比较以外,还比较两边的数据类型。

另外,数值是null,"",undefined,Nan的时候,返回的也是false.有时候判断的时候没必要一个个列举出来,一行代码解决的事情,就不要写两行。

console.log(Boolean(null)); //false

console.log(Boolean("")); //false

console.log(Boolean(undefined)); //false

console.log(Boolean(NaN)); //false

console.log(Boolean(1==1)); //true

console.log(Boolean(1=="1")); //true

console.log(Boolean(1===1)); //true

console.log(Boolean(1==="1")); //false

再说说,null、NaN和undefined的区别.还从下面运行的代码看起。

var a1; var a2 = true; var a3 = 1; var a4 = "a"; var a5 = new Object();var a6 = null; var a7 = NaN; var a8 = undefined;console.log(typeof(a));  // "undefined"console.log(typeof(a1)); // "undefined"console.log(typeof(a2)); // "boolean"console.log(typeof(a3)); // "number"console.log(typeof(a4)); // "string"console.log(typeof(a5)); // "object"console.log(typeof(a6)); // "object"console.log(typeof(a7)); // "number"console.log(typeof(a8)); // "undefined"console.log(Boolean(a1 == a6)); //trueconsole.log(Boolean(a1 == a7)); //falseconsole.log(Boolean(a6 == a7)); //falseconsole.log(Boolean(a7 == a7)); //false

可以看出未定义的值和定义未赋值的为undefined,null是一种特殊的object,NaN是一种特殊的number。 

undefined与null是相等;NaN与任何值都不相等,与自己也不相等。 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
编程语言基于javascript 显式转换与隐式转换(详解)_javascript技巧
JavaScript筑基篇(二)
js 基础
数据类型与typeof
强制类型转换---JavaScript第一课!
Javascript 中数据类型那些可能会中招的细节
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服