false
在逻辑判断中,下列值将判断为 false:
- false
- 0 (零值)
- “” (空字符串)
- null
- undefined
- NaN (一个特殊数值,意思是 Not-a-Number)
true
除了上述六种值,所有其他的值都会决议为 true,包括:
- “0”
- “false”
- [] (空数组)
- {} (空对象)
- function () {} (空函数)
空对象、空数组
那么问题来了,如何判断空数组、空对象呢?用下面的方法。
判断不是空数组 arr:
typeof arr !== 'undefined' && arr.length > 0
判断空对象 obj:
Object.keys(obj).length === 0 && obj.constructor === Object
判断属性是否存在
使用 hasOwnProperty():
if(myObj.hasOwnProperty(myProp)){
alert("yes, i have that property");
}
MDN 给出的例子https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean#Examples
再贴一个 详细讨论