包裝類 包裝類物件 包裝類的型別轉換功能 已完結

2021-08-21 03:24:02 字數 1960 閱讀 3068

在敘述前首先區分三者間的關係(因為在複習過程中,發現自己傻傻分不清):

1.包裝類:

js提供了三個包裝類——boolean、string、number

這兒不是基本資料型別中的boolean、string、number。上述是包裝類,是物件

2.包裝(類)物件:

使用new boolean/string/number()建立的物件即為包裝類物件

3.包裝類的型別轉換功能:

當不通過new運算子呼叫這些這些函式時,它們便作為型別轉換函式。如:number(『3』)——將字串型別轉換為數字型別

new boolean/string/number()得到的是物件,是引用型別;而包裝類作為型別轉換函式時,得到的是基本型別的乙個值,不是物件

包裝(類)物件

我們經常會這樣操作字串:

var str = 'zhongguomei';

varlen = str.length;

那麼,問題是:字串只是乙個基本型別的數,並非物件,為什麼能夠獲取他的length屬性呢?

這是因為:只要讀取了str的屬性,那麼js就會在後台(隱式的)通過new string(str)的方式將str轉換為乙個包裝物件。從而便可以讀取該屬性了!但是,一旦屬性讀取結束,這個隱式建立的包裝物件便會被銷毀

總結:只要對基本資料型別中的string/number/boolean這幾個型別進行讀取或寫入屬性操作,那麼都會呼叫各自對應的包裝類,通過new的方式隱式地建立乙個包裝物件。同時,一旦讀取或寫入操作執行完畢,包裝物件會被立即銷毀

var str = 'zhongguofan';

str.nb = 11;//相當於new string(str).nb = 11;

console.log(str.nb);//undefined

因為在執行str.nb是會建立包裝物件new string(str)–>然後向該包裝物件中寫入屬性nb–>寫入操作執行完畢,銷毀包裝物件,所以輸出undefined

即直接用new建立:

var str = '殘暴的歡愉終將以殘暴結束',

num = 100,

bool = true;

var s = new

string(str),

n = new

number(num),

b = new

boolean(bool);

還有一點應該留意:在建立包裝類物件時,如果實際傳入的引數型別與期待的引數型別不相符,則傳入的引數會在內部隱式的進行型別轉換(這些隱式的型別轉換都是通過下面講的『型別轉換函式完成的』)。例如:

var num = new

number('123bgm');

上述**中,number的引數期待傳入的應該是乙個number型別,但是卻是乙個string型別。此時,便會在內部隱式的呼叫number(注意,此時number是作為型別轉換函式使用的)將其轉換為number型別,然後再建立包裝物件。

當然,建立其他包裝物件時同理

『==』運算子將原始值與其包裝物件視為相等

包裝類的型別轉換功能

在將number/string/boolean做為型別轉換函式使用時,遵循如下規則:

除上述**外,number作為型別轉換函式時還應注意下列問題:

1.在通過number將字串轉換為數字時,允許字串的開始與結尾帶有若干空格,在進行轉換時,這些空格將會被忽略

2.字串中的非數字字元(除兩頭的空格外)會導致number的轉換結果為nan。如:』123er』、『123 78』

3.number轉換的結果是乙個十進位制數。如:number(0x123)=291

物件,包裝類

物件的增刪改查 物件的建立方法 1 var obj plainobject 物件字面量 物件直接量 2 建構函式 1 系統自帶的建構函式 new object 2 自定義 var obj new object a,b,c obj.屬性 屬性值 可以改變新物件裡面的內容。建構函式 寫法和函式相同,要符...

JavaScript物件 包裝類

1.物件字面量 物件直面量 var obj 2.建構函式 1.系統自帶的建構函式object var obj new object 2.自定義 自定義建構函式名第乙個字母建議大寫 function car color var car1 new car red var car2 new car gre...

Arrays類 包裝類

arrays類 針對數值操作的工具類 arrays類的方法是靜態方法,直接用類名.方法 pbulic static void sort int a 方法 將陣列排序 pbulic static sting tostring int a 將陣列轉化成字串 pbulic static int binar...