Truthy 真值
下方有一個 if 判斷式,若判斷內容為 True 就會執行 console 內容。
1 | if (1 == 1) { |
若改成這樣也是會正確執行。
1 | if (5) { |
原因是因為 if 判斷內容為真值。
falsy
但如果將判斷的內容改為空值
或 undefined
或 0,屬於 falsy,就會執行 else。
1 | if ("") { |
但如果引號中有任何值(包含空白),就會變成 truthy。
1 | if (" ") { |
上方判斷中插入空白,就會執行 Truthy 內容。
你以為是 falsy 但其實是 truthy
以下幾個例子。
判斷內容為空陣列。
1 | if ([]) { |
判斷內容為空物件。
1 | if ({}) { |
那這個呢?
1 | if (new Number(0)) { |
答案是 Truthy,原因是 new Number(0),是一個物件,但判斷內容不要使用包裹物件的形式。
所以上方最後一個判斷方式不建議使用。