我相信我已经找到了需要检查javascript对象的undefined和null的情况,如下所示:
if (x !== undefined && x != null && x.length > 0) {...}
然而,在最近升级的JetBrains工具中,它告诉我这已经足够了
if (x != undefined && x.length > 0) {...}
我的问题是,我只是想确保字符串“x”的长度为非零且未定义或为空(测试次数最少)。
思想?
答案 0 :(得分:5)
在javascript中
undefined == null // true
undefined === null // false
因此,使用==
检查undefined
是否==
检查null
是多余的。
答案 1 :(得分:2)
尝试
if (x && x.length)
作为undefined
,null
和0
都是假值。
编辑:
您似乎知道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
}