检查 JavaScript 对象的空子属性
Checking JavaScript object for null subtelty
我相信我已经发现了需要检查javascript对象的undefined和null的情况,如下所示:
if (x !== undefined && x != null && x.length > 0) {...}
但是,在最近升级的 JetBrains 工具中,它告诉我这已经足够了
if (x != undefined && x.length > 0) {...}
我的问题是,我只是想确保字符串"x"的长度为非零,并且不是未定义或空的(测试量最少(。
思潮?
in JavaScript
undefined == null // true
undefined === null // false
因此,与==
检查undefined
会使==
检查null
冗余。
检查foo === undefined
是否会触发错误 foo 未定义。请参阅变量 === 未定义与变量类型 === "未定义">
CoffeeScript 中的存在运算符编译为
typeof face !== "undefined" && face !== null
编辑:
如果您只想检查字符串,Matt 的评论会更好:
typeof x === 'string' && x.length > 0
尝试
if (x && x.length)
如undefined
,null
和0
都是假值。
编辑:正如您似乎知道x
应该是一个string
,您也可以仅使用if (x)
作为空字符串也是假的。
您可以使用 Underscore 中的_.isNull
JavaScript 库提供了一大堆有用的函数式编程助手。
_.isNull(object(
如果对象的值为 null,则返回 true。
_.isNull(null);
=> true
_.isNull(undefined);
=> false
这是我
使用的,也是最简洁的。 它涵盖:未定义、空、NaN、0、"(空字符串(或假。因此,我们可以说"对象"是真实的。
if(object){
doSomething();
}
试试这个
if (!x) {
// is emtpy
}
要检查null
和undefined
和"空字符串",您可以编写
if(!x) {
// will be false for undefined, null and length=0
}
但是你需要确保你的变量是定义的!否则,这将导致错误。
如果要检查object
中的值(例如window
对象(,则始终可以使用该值。 例如,用于检查localStorage
支持:
var supports = {
localStorage: !!window.localStorage
}
相关文章:
- 保存具有相同属性 JavaScript 的元素上的值
- DOM 元素上的空样式属性:JavaScript
- 基于一个属性Javascript检索多个对象
- xml获取属性javascript不会;无法处理childNodes
- 当输入填充了必需的属性javascript/html/css时,如何更改焦点颜色
- 如何处理未定义属性的未定义属性 javascript 类型错误
- 向嵌套对象添加属性 - Javascript
- 属性 Javascript 的访问属性
- 更改链中的 css 属性 - JavaScript
- 更改属性 Javascript 方式的值
- 如何从 url 解析 xml 获取属性 javascript
- 语法错误:缺少:在属性 javascript 之后
- 创建 if 条件基于 CSS 属性 -- JavaScript
- 访问节点的属性javascript二进制搜索树
- 访问父函数属性Javascript
- 为什么未定义此对象的属性?Javascript
- 访问私有属性Javascript OOP
- 访问数组中的属性?(Javascript)
- 动态添加参数作为对象的属性-JavaScript
- 冲突/方法/属性Javascript错误