与 c 和 c++ 很是类似, 但与 Java 不一样, JS中被认为true或false范围很广。全部对象 (空字符串除外) 和非零数字都被视为 true。空字符串、零、null 和undefined 被视为 false。c++
undefined 是一个特殊值。未分配任何值时的全部变量都是undefined。清楚?:)一样, 不返回值的全部函数实际上返回undefined 。事实上, 它是一个关键字。所以, 下面的代码是有效的:函数
var a = undefined;
其实和下面是相似的对象
var a;
在 js 中, 当你尝试用值作一些不可能的事情时, js 会尽可能让它们兼容并输出一些有意义的结果。blog
例如: ! 0 其实是布尔类型的true, !通常只能和布尔型一块儿使用。 ' 2 ' * 1 其实是数字 2, 由于 * 不能用在字符串上。可是, ' 2 ' + 1 是字符串 21, 由于因为存在一个字符串, 该数字被强制为字符串。字符串
有个小建议。你能够这么使用 – var hasChildren = !!children.length; 这会将hasChildren设置合适的布尔数值。class