为什么在谷歌浏览器中 'a' == ['a'] 返回 true?


'a' == ['a'] 谷歌浏览器返回了true 是为什么

1

阅读 1.8k
6 个回答

当字符串与数组进行 == 比较时,会将数组转换为字符串,再和字符串进行比较

这其实是JavaScript的语法特性,==是基于隐式类型转换的等值比较,所以通常建议使用===做等值比较

当使用==运算符比较两个不同类型的值时,js会尝试将它们转换为相同的类型进行比较。右侧的 ['a']是一个数组。js会调用toString()方法将数组转换为字符串。['a'].toString()的结果是'a'。表达式变为'a'=='a',显然是true

console.log(['a'].toString()); // 'a'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏