JavaScript 中的相等性判断

99 阅读1分钟

此文不做过多解释,直接 参考,只是看到MDN上总结的两幅矩阵图,对比简单明了,因此搬运了过来;

== 比较

==

步骤:

  1. == 两边先转换为相同类型,一边还是两边 与值的原始类型有关系; 1.对转换后的相同类型,进行对比,等同于 ===;

转换发现

  • undefined 和 null 属于特殊值,只有与自身比较结果才是 true;
  • 一侧只要有 undefined 或 null,那么结果是 false;
  • 单侧是数字时,另一侧会被隐式转化为数字,另一侧应该是(string,bool);
  • string与bool 都会被隐式转化为数字;

我没有总结Object的隐式转换,但发现隐式转都是超向数字方向转换;

理解相等比较的模型

判断等号方式有三种

  1. ==
  2. ===
  3. Object.is(value1,value2);

差异在于,边界特殊值的结果;