是否可以在javascript中检查null和undefined?
if(_var == null || _var == undefined) {
}
答案 0 :(得分:7)
在JavaScript(pre ECMAScript 5)中,undefined
不是常量,而是全局变量,因此可以更改其值。因此,使用typeof
运算符检查undefined
:
if (typeof _var === 'undefined') { }
此外,如果未声明变量_var
,则表达式将返回ReferenceError。但是,您仍然可以使用typeof
运算符对其进行测试,如上所示。
因此,您可能更愿意使用以下内容:
if (typeof _var === 'undefined' || _var === null) { }
答案 1 :(得分:4)
是
但是使用==运算符并不是必需的。使用foo == null也是如此,foo未定义。但请注意,undefined和null或不是(!)相同。这是因为==确实键入了coooion,foo == null也适用于foo未定义。
答案 2 :(得分:1)
if (!_var) {
// Code here.
}
这应该有效,因为undefined
和null
都被强制转换为false
。
当然,如果_var
实际上是false
,则存在一个小问题,但是它很有效,因为在大多数情况下,您会想知道_var
是否不是true
而不是{{1}}一个对象。
答案 3 :(得分:0)
你也可以在mootools中使用$defined
函数(在jquery中必须有一个等价物)
答案 4 :(得分:0)
var valuea: number;
var valueb: number = null;
function check(x, name) {
if (x == null) {
console.log(name + ' == null');
}
if (x === null) {
console.log(name + ' === null');
}
if (typeof x === 'undefined') {
console.log(name + ' is undefined');
}
}
check(a, 'a');
check(b, 'b');