javascript - 为什么在 JavaScript 中将值与 undefined 进行比较会返回 false?

标签 javascript comparison undefined

我是 Javascript 的新手,我注意到当变量为 undefined 时,比较数字会返回 false,如下所示。为什么将 undefined 与数字进行比较会返回 false

var a = undefined;
console.log(a < 10);
console.log(10 < a);
console.log(a == 10);

最佳答案

这就是 JavaScript 中的工作方式。

Number(undefined) // NaN
NaN == NaN // false
NaN < 0 // false
NaN > 0 // false

因此,当您比较它时,强制检查如下:

Number(undefined) < 10
// undefined is coerced to check with number

因此,

undefined == 10 // false
undefined > 10 // false
undefined < 10 // false

关于javascript - 为什么在 JavaScript 中将值与 undefined 进行比较会返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53386326/

相关文章:

javascript - undefined object 的 Json 属性不打印。为什么?

Javascript:对象属性未定义(非常具体的情况)

javascript - 为什么 auth.login facebook JS SDK 事件会在页面加载时触发?

javascript - 如何计算 Parse 平台上的 BeforeSave CloudCode 中的总用户数

C# - 图像比较(快速)

Javascript 检查三个值是否在 2 的公差范围内相等

sql - 使用 SQL 选择之前未比较过的两行

c++ - 分配给 vector 的对象范围?

javascript - 当我只告诉它调用一个函数时,Blazor 服务器应用程序中的 JSRuntime.InvokeVoidAsync 调用多个函数

javascript - 如何仅使用 sequelize-cli 播种一个文件?