包裝類型:專門封裝基本數(shù)據(jù)類型括丁,并提供操作基本類型值的API荞下。常用的基本類型boolean,string和number的值躏将,本身是不具備任何功能的锄弱。為了便于操作基本類型,ECMAScript提供了3個(gè)特殊的基本類型:Boolean祸憋,String和Number.
var n = 3.1415;
var n2 = n.toFixed(2);
console.log(n2); //3.14
后臺(tái)自動(dòng)完成的一系列處理:
1.判斷n的基本類型 typeof n -> number
2.創(chuàng)建Number類型的一個(gè)實(shí)例 var n = new Number(3.1415);
3.在實(shí)例上調(diào)用指定的方法 var n2 = n.toFixed(2);
4.銷毀這個(gè)實(shí)例 n2 = null;
引用類型與基本包裝類型的主要區(qū)別就是對(duì)象的生存期
使用new操作符創(chuàng)建的引用類型的實(shí)例会宪,在執(zhí)行流離開當(dāng)前作用域之前都一直保存在內(nèi)存中。而自動(dòng)創(chuàng)建的基本包裝類型的對(duì)象蚯窥,則只存在于一行代碼的執(zhí)行瞬間掸鹅,然后立即被銷毀塞帐。這意味著,我們不能在運(yùn)行時(shí)為基本類型值田間屬性和方法巍沙】眩【js高程】
var str ="carmen";
str.len = 10;
console.log(str.len); //undefined
第二行代碼執(zhí)行時(shí):
new String().len = 10
new String 被銷毀
到第三行時(shí):
創(chuàng)建新的String對(duì)象, 它沒有l(wèi)en屬性,所以是undefined
注意:使用new調(diào)用基本包裝類型的構(gòu)造函數(shù)句携,與直接調(diào)用同名的轉(zhuǎn)型函數(shù)是不一樣的榔幸。
var s = "carmen";
var str = String(s); // 轉(zhuǎn)型函數(shù)
console.log(typeof str); //string
str.len = 10;
console.log(str.len); // undefined
var s = "carmen";
var str = new String(s); // 構(gòu)造函數(shù)
console.log(typeof str); //object
str.len = 10;
console.log(str.len); // 10