050_Boolean对象
1. Boolean對象
1.1. Boolean是對true或false的包裝對象。
1.2. 創建Boolean對象的語法:
var myBool = new Boolean(value);1.3. 參數value由布爾對象存放的值。
1.4. 當Boolean()和運算符new一起作為構造函數使用時, Boolean()將把它的參數轉換成一個布爾值, 并且返回一個包含該值的Boolean對象。
1.5. 如果省略value參數, 或者設置為undefined、null、""、0、NaN或false, 則該對象設置為false。否則設置為true(即使value參數是字符串"false")。
2. Boolean對象屬性
3. Boolean對象方法
4. 使用字面量創建布爾值和Boolean對象創建布爾值
4.1. 使用字面量創建布爾值和Boolean對象創建布爾值
var b1 = new Boolean(); // Boolean對象創建布爾值 var b2 = false; // 使用字面量創建布爾值4.2. 使用字面量創建的布爾值和使用Boolean對象創建布爾值的不同
4.2.1. 使用字面量創建的布爾值是原始值, 儲存在棧中。
4.2.2. 使用Boolean對象創建的布爾值是對象(引用類型), 儲存在堆中。
4.2.3. 布爾字面量和Boolean對象創建布爾值的內存結構:
4.2.4. 使用Boolean對象創建布爾值比使用字面量創建布爾值復雜的多(就是因為Boolean對象多執行了一個Boolean()構造函數), 執行效率低, 因此我們通常使用字面量創建布爾值。
4.2.5. 使用==運算符判斷使用字面量和Boolean對象創建的相同值的布爾值是否相等時, 結果是true, 因為布爾值相同。
4.2.6. 使用===運算符判斷使用字面量和Boolean對象創建的相同值的布爾值是否相等時, 結果是false, 因為雖然布爾值相同, 但類型不同, 一個是布爾值, 一個是對象。
5. 布爾原始值可以使用Boolean對象的屬性和方法
5.1. 原始布爾值, 比如true, 無法擁有屬性和方法, 因為它們不是對象。
5.2. 但是通過JavaScript, Boolean對象的屬性和方法也可用于原始布爾值, 因為在執行屬性和方法時 JavaScript將原始布爾值視為偽對象。
6. Boolean對象重寫了Object對象的constructor: ? Boolean()屬性, 和toString()、valueOf()這兩個方法。
7. toString()方法
7.1. toString()方法可把一個邏輯值轉換為字符串, 并返回字符串原始值"true"或"false"。
7.2. 語法
booleanObject.toString()8. valueOf()方法
8.1. valueOf()方法可返回Boolean對象的原始值。
8.2. 語法
booleanObject.valueOf()9. 例子
9.1. 代碼
<!DOCTYPE html> <html lang="zh-CN"><head><meta charset="utf-8" /><title>Boolean對象</title></head><body><script type="text/javascript">var b1 = new Boolean(undefined);var b2 = new Boolean(null);var b3 = new Boolean("");var b4 = new Boolean("false");var b5 = new Boolean(0);var b6 = new Boolean(NaN);var b7 = new Boolean();var b8 = new Boolean(false);var b9 = new Boolean(true);var b10 = true;document.write('b1 = ' + b1 + '<br />');document.write('b2 = ' + b2 + '<br />');document.write('b3 = ' + b3 + '<br />');document.write('b4 = ' + b4 + '<br />');document.write('b5 = ' + b5 + '<br />');document.write('b6 = ' + b6 + '<br />');document.write('b7 = ' + b7 + '<br />');document.write('b8 = ' + b8 + '<br />');document.write('b9 = ' + b9 + '<br />');document.write('b10 = ' + b10 + '<hr />');document.write('(b9 == b10) = ' + (b9 == b10) + '<br />');document.write('((b9 === b10) = ' + (b9 === b10) + '<br />');document.write('(b9.valueOf() === b10) = ' + (b9.valueOf() === b10) + '<br />');document.write('(typeof b9) = ' + (typeof b9) + ', (typeof b9.valueOf()) = ' + (typeof b9.valueOf()) + '<br />');document.write('(typeof b10) = ' + (typeof b10) + ', (typeof b10.valueOf()) = ' + (typeof b10.valueOf()) + '<hr />');document.write('b8.toString() = "' + b8.toString() + '", (typeof b8.toString()) = ' + (typeof b8.toString()) + '<br />');document.write('b9.toString() = "' + b9.toString() + '", (typeof b9.toString()) = ' + (typeof b9.toString()) + '<br />');document.write('b10.toString() = "' + b10.toString() + '", (typeof b10.toString()) = ' + (typeof b10.toString()) + '<br />');</script></body> </html>9.2. 效果圖
總結
以上是生活随笔為你收集整理的050_Boolean对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 049_Number对象
- 下一篇: 051_Array对象