標籤:字串 程式 amp 轉換 doc cti javascrip define new
你不知道的Javascript(中)--ToBoolean
javascript中的值可以分為以下兩類:
1.可以被強制類型轉換為false的值
2.其他(被強制類型轉換為true的值)
假值---以下是js的ES規範中定義了的假值:
- undefined
- null
- false
- +0、-0和NaN
- ""-Null 字元串
假值的不二強制類型轉換結果為false。一般除假值以外的都是真值。
假值對象--封裝了假值的對象
eg:
var a=new Boolean(false);
var b=new Boolean(0);
var c=new Boolean("");
【注】規範中規定“所有對象都是真值”,所以即使封裝的內容是假值,這些對象依舊是真值。
即:Boolean(a&&b&&c)==>true
【注意】在js代碼中會出現對象判斷為假的用法,但它實際上不屬於javascript語言的範疇。跟瀏覽器有關。瀏覽器在某些情況下在常規js文法上自己穿件了一些外來值,這些就是"假值對象"。
eg:
document.all,是一個類數組對象,包含了頁面上所有元素,由DOM提供(而不是由js引擎提供)給js程式使用。
用document.all在瀏覽器上強制類型轉換後的結果,可被用來判斷是否是ie(老版本的),這種判斷也許在以後會因為ie對document.all的支援的結束而出現隱患。
真值--假值列表之外的值
eg:
var a="false"; //字串false --true
var a="0"; //字串0 --true
var a="‘‘"; //字串‘ --true
Boolean(a&&b&&c)==>true。【注】只有Null 字元串轉換後是false。
eg:
var a=[]; //空數組 --true
var b={}; //Null 物件 --true
var c=function(){}; //空函數 --true
Boolean(a&&b&&c)==>true
Js中的假值_ES5中定義的ToBoolean方法強制類型轉換後值為false