美文网首页程序员
关于js中的双等号问题

关于js中的双等号问题

作者: 小鳄鱼的大哥哦 | 来源:发表于2021-01-18 19:25 被阅读0次

js中存在=====两种校验是否相等的运算符。

  • ==代表值相等
  • ===代表值和类型都相等

由于双等号的存在,使用中会存在一些问题,例如:

undefined == null // true
false == '0' // true
true == 'true' // false
[] == 0 // true
[] == false // true
new Boolean('false') == false // false

重读前端中列出了双等号的转换方式:

  • undefined 与 null 相等;
  • 字符串和 Boolean 都转为数字再比较;
  • 对象转换成 primitive 类型再比较。

有时候不知道会拿到什么类型的数据时,为了严格的控制数据类型和可能存在的状况bug,还是建议用三等来判断,把拿到的不确定数据都进行类型转换之后再做比较。

目前js设计中的存在了早期的不合理设计,在 JavaScript 设计原则“don’t break the web”之下,已经无法修正了,这种可控类型问题可以考虑用typescript解决,团队的规范也建议停用双等号以减少出现bug的几率。

相关文章

网友评论

    本文标题:关于js中的双等号问题

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