與 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