1. 程式人生 > >js基本包裝型別

js基本包裝型別

js基本包裝型別

/*
*
* 基本包裝型別:number string boolean 本身是基本型別,但是在執行程式碼的過程中,
* 如果這種型別的變數呼叫了屬性h或者是方法,那麼這種型別就不再是基本型別,而是基本包裝型別,
* 這個變數也不是普通的變數,而是基本包裝型別物件
* https://www.cnblogs.com/john-sr/p/5731247.html
* */
var str = "hello world";
// 在呼叫屬性或者方法的時候,成為基本包裝型別物件
str = str.substr(2, 3);
// 結束後馬上銷燬
console.log(str);

// 實際上,內部是這樣執行的
// var str = new String("hello world");
// str = str.substr(2, 3);
// str = null;//這裡指的是str的那個物件銷燬,等號左邊的str儲存返回的字串,不衝突
// console.log(str);

// 超級大坑!!!
// 如果一個物件&&true,那麼結果是true
// 如果true&&物件,那麼結果是物件
// true在後,就是true
// flag在後,就是false
var flag = new Boolean(false);
var result = flag && true;//true
// var result = true && flag;//false
// var flag = new Boolean(true);
// var result = flag && false;//false
// var result = false && flag;
console.log(result);

var num = 10;//基本型別
var num2 = Number("10");//型別轉換
var num3 = new Number(10);//基本包裝型別