javascript - 为什么0 == null 返会的是false?
PHP中文网
PHP中文网 2017-04-11 10:04:40
[JavaScript讨论组]

0 >= null 返会的是true,而0 == null 返会的是false?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(6)
高洛峰

比较过程,比较0<null,返回false,然后这个表达式就返回true。是不是有点坑!

PHPz

http://javascript.ruanyifeng....

迷茫

js 比较运算符的算法,除了相等运算符号(==)和严格相等运算符(===),js 的比较运算符的规则:

1、如果两个运算子都是字符串,则按照字典顺序比较

2、否则,将两个运算子都转成数值,再进行比较

而 js 的 null、undefined 与其他类型的值进行 == 比较时,结果都为 false;null == undefined 结果为 true

相等运算符隐藏的类型转换,会带来一些违反直觉的结果。所以请尽量使用 ===

PHP中文网

这里有一个隐式转换的过程:

  • 0 >= null, null转为0

  • 0 == null, null不会转换

别问我为什么, 这就是规则.

迷茫

第一个数据转换,很容易得到答案
第二个null是特殊情况(null没有valueOf, toString等方法),它不能转换成其他值(具体见js 高程),无法与0比较,所以返回false,不过可以用Number(null)转换,这样才可以返回true

ringa_lee

谢邀。看了所有答案,觉得一楼最为合理。虽然不知道对不对,但是我无言以对。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号