為了便於操作基本型別,ecmascript還提供了3個特殊的引用型別boolean、number、string。這些型別與其他引用型別形似,但同時也具有各自的基本型別相應的特殊行為。實際上,每當讀取乙個基本型別值時後台就會建立乙個相應的基本包裝型別的物件,從而讓我們能夠呼叫一些方法來操作這些資料。
eg: var str1 = "abcs";
var str2 = str1.concat();
//str1包含乙個字串,字串是基本型別值。基本型別值不是物件,因而從邏輯上將它們不應該有方法,但它們確實有方法。後台已經自動完成了一系列的處理,當訪問str1時後台會自動進行如下處理:
(1)建立string型別的乙個例項
var str1=new string("abcs");
(2)在例項上呼叫指定方法
var str2=str1.concat()
(3)銷毀這個例項
str1=null;
//經過這些處理,基本的字串值就變跟物件一樣了,boolean、number同理
注意:* 使用new建立的引用型別的例項,在執行流離開當前作用域之前一直儲存在記憶體中,而自動建立的基本包裝型別的物件,則只存在於一行**的瞬間,然而立即銷毀。這意味著不能在執行時為基本型別值新增屬性和方法。
var str1 = "123";
str1.name="字串";
console.log(str1.name);//undefined
* 可以顯示地呼叫boolean、number、string來建立基本包裝型別的物件。不過,應該在絕對必要的情況下再這麼做,因為這樣做讓人分不清自己是在處理基本型別還是引用型別的值。
* 對基本包裝型別的例項呼叫typeof會返回「object」,而且所有基本包裝型別的物件都會被轉換為布林值true.
var obj = new number(value);
console.log(typeof obj);//"object"
var obj = number(value);
alert(obj);//"number"
* object建構函式也會像工廠方法一樣,根據傳入值的型別返回相應包裝型別的例項
var obj = new object("abc");
console.log(obj instaceof string);//true
JS基本包裝型別的介紹
js基本包裝型別 將基本資料型別包裝成物件,並賦予他一些方法,js中為我們提供了三個包裝類,通過這三個包裝類可以將基本資料型別的資料轉換成物件 1.string 可以將基本資料型別字串轉換成string物件 2.number 可以將基本資料型別的數字轉換為number物件 3.boolean 可以將...
基本包裝型別
好久之前看的高程,最近有些忘記了,疑惑基本包裝型別存在的意義,下面總結一下 為了便於操作基本型別,ecmascript提供了三個特殊的引用型別 boolean number string。實際上,每當讀取乙個基本型別值的時候,後台就會建立乙個對應的基本包裝型別的物件,從而讓我們能夠呼叫一些方法來操作...
基本包裝型別
為了便於操作基本資料型別,提供了三個特殊的引用型別,boolean,number和string,這些型別和其他引用型別相似,但是同時也具備和自己相應的資料型別的特殊行為,實際上每當讀取乙個基本型別的數值後,後台都會為我們建立對應的基本包裝型別的物件,從而能夠呼叫一些方法處理這些資料。var box ...