在 JavaScript 中, null
是一个对象。对于不存在的事物,还有另一个值, undefined
。对于几乎无法在文档中找到某些结构的所有情况,DOM 都返回null
,但在 JavaScript 本身中, undefined
是使用的值。
第二,不,没有直接的等价物。如果您确实想要专门检查null
,请执行以下操作:
if (yourvar === null) // Does not execute if yourvar is `undefined`
如果要检查变量是否存在,那只能通过try
/ catch
来完成,因为typeof
会将未声明的变量和使用undefined
值声明的变量视为等效变量。
但是,检查是否声明一个变量,而不是undefined
:
if (typeof yourvar !== 'undefined') // Any scope
请注意,这是无稽之谈,因为可能存在名称undefined
的变量:
if (yourvar !== undefined)
如果您想知道成员是否存在独立但不关心其价值是什么:
if ('membername' in object) // With inheritance
if (object.hasOwnProperty('membername')) // Without inheritance
如果你想知道变量是否真实 :
if (yourvar)
真正测试变量是否undefined
的唯一方法是执行以下操作。请记住,undefined 是 JavaScript 中的一个对象。
if (typeof someVar === 'undefined') {
// Your variable is undefined
}
此线程中的其他一些解决方案将使您相信变量未定义,即使它已被定义(例如,值为 NULL 或 0)。
从技术上讲,正确的解决方案是(我相信):
typeof x === "undefined"
你有时会变得懒惰和使用
x == null
但是这允许未定义的变量 x 和包含 null 的变量 x 都返回 true。