Boolean類型是與布爾值對應(yīng)的引用類型。要創(chuàng)建Boolean對象,可以像下面這樣調(diào)用Boolean構(gòu)造函數(shù)并傳人true或false值: var booleanObject=new Boolean(true);
Boolean類型的實例重寫了valueOf()方法,返回基本類型值true或false;重寫了toString()方法,返回字符串”true”和”false”??墒牵珺oolean對象在ECMAScript中的用處不大,因為它經(jīng)常會造成人們的誤解。其中最常見的問題就是在布爾表達式中使用Boolean對象,例如:
var falseObj ect=new Boolean( false);
var result= falseObject&&true;
alert (result); //true
var falseValue=false;
result=falseValue&&true;
alert (result); //false
在這個例子中,我們使用false值創(chuàng)建了一個Boolean對象。然后,將這個對象與基本類型值true構(gòu)成了邏輯與表達式。在布爾運算中,false && true等于false??墒?,示例中的這行代碼是對falseObject而不是對它的值(false)進行求值。前面討論,布爾表達式中的所有有對象都會被轉(zhuǎn)換為true,因此falseObject對象在布爾表達式中代表的是true.結(jié)果,true && true 當(dāng)然然就等于true了。
基本類型與引用類型的布爾值還有兩個區(qū)別。首先,typeof操作符對基本類型返回"boolean",而對引用類型返回”object”。其次,由于Boolean對象是Boolean類型的實例,所以南昌網(wǎng)站建設(shè)公司技術(shù)員使用instanceof操作符測試Boolean對象會返回true,而測試基本類型的布爾值則返回false。例如:
alert( typeof falseObj ect); //object
alert (typeof falseValue); //boolean
alert( falseObj ect instanceof Boolean)j //true
alert( falseValue instanceof Boolean)j //false
理解基本類型的布爾值與Boolean對象之間的區(qū)別非常重要——當(dāng)然,我們的建議是永遠不要使用Boolean對象。
本文主要用于南昌網(wǎng)絡(luò)公司百恒網(wǎng)絡(luò)內(nèi)部技術(shù)人員交流使用,如讀者發(fā)現(xiàn)不正確之處也以與南昌建網(wǎng)站公司百恒網(wǎng)絡(luò)聯(lián)系,相互交流,相互學(xué)習(xí),相互進步.