为什么不't空字符串==在JavaScript中为null
Why doesn't empty string == null in JavaScript
根据ECMAScript,我知道空字符串和null都是错误的。如果两者都是假的,那么下面的结果为什么不为真呢?
var emptyString = '';
if (emptyString == null) {
console.log('emptyString == null');
}
else {
console.log('emptyString does not == null'); // but why?
}
空字符串和null都是错误的
是的,但这并不意味着所有错误的值都是相等的。NaN
和0
都是伪的,但它们绝对不相等。反过来也不成立,"0" == 0
但"0"
不成立。
值的草率等价是由抽象等式算法及其类型矫顽力定义的,null
对undefined
来说根本不是==
。
更常用的抽象比较(例如==)在进行比较之前将操作数转换为相同的类型。
这里,null是一个错误的值,但null不是==错误的
null和undefined的falsy值除了它们自己之外并不等价:
(null == false); // false
(null == null); // true
(undefined == undefined); // true
(undefined == null); // true
由于另一个操作数是null(这也是javascript中的一种类型),因此空字符串(falsy值)和null的抽象比较不会给出真实值。
我想这会对你有所帮助。
比较运算符
这个也是
Truthy和Falsy:当JavaScript 中的All不相等时
相关文章:
- 正则表达式,用于在 JavaScript 中为电话号码添加短划线
- 在Javascript中为if/else语句添加OR
- 无法设置属性'innerHTML'在javascript中为null
- 如何在javascript中为全局变量赋值
- 在JavaScript中为true==1和false==0
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- JavaScript中为负零
- 在JavaScript中为表单元素生成键值对
- 如何在Javascript中为不同的页面访问存储变量
- 如何在 javascript 中为字符串中的数字添加下划线
- 在 JavaScript 中为其添加动画效果时更改图像颜色
- 如何在 javascript 中为没有值的标签选择属性
- 为什么不't空字符串==在JavaScript中为null
- 如何在JavaScript中为ENTER事件充值
- 如何在JavaScript中为Google闭包编译器设置参数类型
- 如何在JavaScript中为任何对象实现事件侦听器
- 如何在javascript中为动画制作一个ease函数
- 如何在javascript中为两个数组的每个循环使用一个
- 有没有一种方法可以在javascript中为文本节点添加属性
- 为什么{}=={}在JavaScript中为false