检查null或undefined

Bru*_*ant 3 javascript node.js

虽然有JavaScript的语义差别nullundefined,很多时候他们可以被视为是相同的.检查值是null还是未定义的最佳方法是什么?


现在我正在做以下事情:

if (typeof value === "undefined" || value === null) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

这是非常冗长的.当然,我可以为此创建一个函数并在任何地方导入,但我希望有更好的方法来实现这一点.

另外,我知道

if (value == null) {
}
Run Code Online (Sandbox Code Playgroud)

将90%的时间完成工作,除非值为零......或者错误......或者一些可能导致模糊错误的隐含事物.

T.J*_*der 21

另外,我知道

if (value == null) {
}
Run Code Online (Sandbox Code Playgroud)

将90%的时间完成工作,除非值为零......或者错误......或者一些可能导致模糊错误的隐含事物.

不,它可以100%完成工作.唯一的值== nullnullundefined. 0 == null假的."" == undefined是假的.false == null是假的.等等.你会== null因为虚假而混淆,这是一个非常不同的事情.

但这并不是说,编写代码期望每个人都知道这一点是个好主意.您对已经使用的代码有一个非常好的,清晰的检查.无论您选择写作value == null还是正在使用(或if (value === undefined || value === null))当前使用的是一种风格和内部惯例.但value == null确实做了你所问的:检查valuenullundefined.

细节==在这里:抽象平等比较.

  • 谢谢TJ,我真的很困惑. (2认同)