2 个回答

这是关于==号隐式变换的问题,这种问题最好都去翻规范:
Abstract Equality Comparison

根据规范,你这个判断,实际上会被这样等效

'dsfsdg' == true
=>
'dsfsdg' == 1
=>
Number('dsfsdg') == 1
=>
NaN == 1
=>
false

最后,在编程中最好少用==号~

关系运算:> < >= <= == != 都包含隐式转换:默认都转为数字(Number(x)),再比较大小。null或引用类型的对象,则不隐式转换,而比较地址值 属于引用类型的范围
特殊:如果参与比较的两个值都是字符串,不再转数字,而是逐位PK每个字符的unicode号;比完比长度
你这两个字符串保存的地址当然不一样了,返回false

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题