==与===的区别

在ES6 或 Javascript 中,== 与 === 是有明显区别的。

先看如下测试:

"1" == 1   // true
"1" === 1  // false
Number(1) == true // true
Number(1) === true // false
null == undefined // true
null === undefined // false

以上情况可以看出,== 在类型不同时比较值为 true,而 === 比较值为 false;

因此:

  1. ===:称为等同符,当两边值的类型相同时,直接比较值,若类型不相同,直接返回false;
  2. ==:称为等值符,当等号两边的类型相同时,直接比较值是否相等,若不相同,则先转化为类型相同的值,再进行比较;

类型转换规则:

  1. 如果等号两边是boolean、string、number 三者中任意两者进行比较时,优先转换为数字进行比较。
  2. 如果等号两边出现了 nul l或 undefined, null 和 undefined 除了和自己相等,就彼此相等

注意:NaN == NaN //返回 false,NaN 和所有值包括自己都不相等。

NaN == NaN // false
图1-诠释了所有的类型比较
this.setState({title: this.areaData == null ? '新增区域' : '编辑区域'});
/* 换成如下写法更好:
因为它会判断各种类型
当 this.areaData 等于 {}, [], "", 0, null, undefined, NaN 时,无均返回 false, 所以可以利用此特性来判断这些类型。*/
this.setState({title: this.areaData ? '新增区域' : '编辑区域'});
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容