这是关于==号隐式变换的问题,这种问题最好都去翻规范:Abstract Equality Comparison
根据规范,你这个判断,实际上会被这样等效
'dsfsdg' == true => 'dsfsdg' == 1 => Number('dsfsdg') == 1 => NaN == 1 => false
最后,在编程中最好少用==号~
关系运算:> < >= <= == != 都包含隐式转换:默认都转为数字(Number(x)),再比较大小。null或引用类型的对象,则不隐式转换,而比较地址值 属于引用类型的范围特殊:如果参与比较的两个值都是字符串,不再转数字,而是逐位PK每个字符的unicode号;比完比长度你这两个字符串保存的地址当然不一样了,返回false
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(2)
这是关于==号隐式变换的问题,这种问题最好都去翻规范:
Abstract Equality Comparison
根据规范,你这个判断,实际上会被这样等效
最后,在编程中最好少用==号~
关系运算:> < >= <= == != 都包含隐式转换:默认都转为数字(Number(x)),再比较大小。null或引用类型的对象,则不隐式转换,而比较地址值 属于引用类型的范围
特殊:如果参与比较的两个值都是字符串,不再转数字,而是逐位PK每个字符的unicode号;比完比长度
你这两个字符串保存的地址当然不一样了,返回false