美文网首页WEB前端
==与===的区别

==与===的区别

作者: 笙笙哥 | 来源:发表于2019-09-26 10:00 被阅读0次

在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 ? '新增区域' : '编辑区域'});

相关文章

网友评论

    本文标题:==与===的区别

    本文链接:https://www.haomeiwen.com/subject/agplyctx.html