扫码关注官方订阅号
0 >= null 返会的是true,而0 == null 返会的是false?
认证高级PHP讲师
比较过程,比较0<null,返回false,然后这个表达式就返回true。是不是有点坑!
0<null
false
true
http://javascript.ruanyifeng....
js 比较运算符的算法,除了相等运算符号(==)和严格相等运算符(===),js 的比较运算符的规则:
1、如果两个运算子都是字符串,则按照字典顺序比较 2、否则,将两个运算子都转成数值,再进行比较
1、如果两个运算子都是字符串,则按照字典顺序比较
2、否则,将两个运算子都转成数值,再进行比较
而 js 的 null、undefined 与其他类型的值进行 == 比较时,结果都为 false;null == undefined 结果为 true
相等运算符隐藏的类型转换,会带来一些违反直觉的结果。所以请尽量使用 ===
这里有一个隐式转换的过程:
0 >= null, null转为0
0 == null, null不会转换
别问我为什么, 这就是规则.
第一个数据转换,很容易得到答案第二个null是特殊情况(null没有valueOf, toString等方法),它不能转换成其他值(具体见js 高程),无法与0比较,所以返回false,不过可以用Number(null)转换,这样才可以返回true
谢邀。看了所有答案,觉得一楼最为合理。虽然不知道对不对,但是我无言以对。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
比较过程,比较
0<null,返回false,然后这个表达式就返回true。是不是有点坑!http://javascript.ruanyifeng....
js 比较运算符的算法,除了相等运算符号(==)和严格相等运算符(===),js 的比较运算符的规则:
而 js 的 null、undefined 与其他类型的值进行 == 比较时,结果都为 false;null == undefined 结果为 true
相等运算符隐藏的类型转换,会带来一些违反直觉的结果。所以请尽量使用 ===
这里有一个隐式转换的过程:
0 >= null, null转为0
0 == null, null不会转换
别问我为什么, 这就是规则.
第一个数据转换,很容易得到答案
第二个null是特殊情况(null没有valueOf, toString等方法),它不能转换成其他值(具体见js 高程),无法与0比较,所以返回false,不过可以用Number(null)转换,这样才可以返回true
谢邀。看了所有答案,觉得一楼最为合理。虽然不知道对不对,但是我无言以对。