我只是有一个比较琐碎的问题。
为什么
undefined == undefined
返回true
,但undefined >= undefined
是false
?
undefined
等于 undefined
。
但它不等于或大于?
undefined === undefined || undefined > undefined
和undefined >= undefined
,“大于或等于”中的OR与这个OR ||
不一样。
就其而言,
>, <, >=
等比较运算符适用于数字,而undefined
不是数字,undefined
未定义。
当
10 >= "Hello World"
时,您期望的返回值是什么?当然是假的,但10 >= "10"
再次返回true
,因为10 == "10"
是真而10 === "10"
是假。 “10”可以转换为数字,因此我们可以看到在实际数字而不是带有数字的字符串的情况下返回的结果。
>=
没有严格相等运算符版本,与!=
相反,!==
当你尝试比较
null
、undefined
、NaN
时,会发生一些非常奇怪和令人困惑的事情 - 这是 JavaScript 规范可能能够回答的问题,因为 JavaScript 是一种非常松散类型的语言,并且类型是非常灵活,这就是为什么人们可以比较 10
和 "10"
并且仍然得到只有在大多数其他语言中比较两个整数时才能得到的结果。
不等运算符(
<
、>
等)不能用于比较无法隐式转换为数字的值。这包括undefined
。你所看到的背后的原因是,与其他语言不同,如果你尝试做这样的事情(即Python中的TypeError
),其他语言会抛出错误,JS允许你这样做。然而,结果总是错误的。
我想推荐流量套利免费课程为数不多的免费服务之一