检查JavaScript对象是否为null细微

时间:2013-08-24 18:54:07

标签: javascript

我相信我已经找到了需要检查javascript对象的undefined和null的情况,如下所示:

if (x !== undefined && x != null && x.length > 0) {...}

然而,在最近升级的JetBrains工具中,它告诉我这已经足够了

if (x != undefined && x.length > 0) {...}

我的问题是,我只是想确保字符串“x”的长度为非零且未定义或为空(测试次数最少)。

思想?

7 个答案:

答案 0 :(得分:5)

在javascript中

undefined == null // true
undefined === null // false

因此,使用==检查undefined是否==检查null是多余的。

答案 1 :(得分:2)

尝试

if (x && x.length)

作为undefinednull0都是假值。

编辑: 您似乎知道x应该是string,您也可以使用if (x),因为空字符串也是假的。

答案 2 :(得分:2)

您可以使用Underscore中的_.isNull JavaScript库提供了大量有用的函数式编程助手。

<强> _。ISNULL(对象)

如果object的值为null,则返回true。

_.isNull(null);
=> true
_.isNull(undefined);
=> false

答案 3 :(得分:2)

这是我使用的,它是最简洁的。它涵盖: undefined,null,NaN,0,&#34;&#34; (空字符串)或false。因此,我们可以说&#34;对象&#34;是真的。

if(object){
    doSomething();
}

答案 4 :(得分:1)

检查foo === undefined是否会触发错误 foo未定义。见variable === undefined vs. typeof variable === "undefined"

CoffeeScript中的existential operator编译为

typeof face !== "undefined" && face !== null

编辑:

如果您只想检查字符串,

Matt's comment会更好:

typeof x === 'string' && x.length > 0

答案 5 :(得分:0)

试试这个

 if (!x) {
  // is emtpy
}

答案 6 :(得分:0)

要检查null AND undefined和“空字符串”,您可以写

if(!x) {
   // will be false for undefined, null and length=0
}

但是你需要确保定义你的变量!否则会导致错误。

如果您要检查object中的值(例如window对象),则可以随时使用该值。例如。检查localStorage支持:

var supports = {
    localStorage: !!window.localStorage
}