09_javascript內建物件(包裝類)
阿新 • • 發佈:2018-12-13
包裝類(String、Number、Boolean)
在JS中為我們提供了三個包裝類,通過這三個包裝類可以將基本資料型別的資料轉換為物件。
String() 可以將基本資料型別字串轉換為String物件
Number() 可以將基本資料型別的數字轉換為Number物件
Boolean() 可以將基本資料型別的布林值轉換為Boolean物件
但是注意:我們在實際應用中不會使用基本資料型別的物件,如果使用基本資料型別的物件,
在做一些比較時可能會帶來一些不可預期的結果
通過new來建立物件
var num = new Number(3); 方法和屬效能新增給物件,不能新增給基本資料型別 當我們對一些基本資料型別的值去呼叫屬性和方法時,瀏覽器會臨時使用包裝類將其轉換為物件, 然後在呼叫物件的屬性和方法,呼叫完以後,在將其轉換為基本資料型別。 var s = 123; s = s.toString(); s.hello = "你好"; console.log(s.hello); // "undefined" s是基本資料型別,不能新增屬性 console.log(typeof s); // "string"
字串的相關方法:
建立一個字串
var str = "Hello Atguigu";
在底層字串是以字元陣列的形式儲存的 ["H","e","l"]
length屬性
可以用來獲取字串的長度
var str = "Hello Atguigu";
console.log(str.length);//13
console.log(str[5]);//‘ ’
charAt()
可以返回字串中指定位置的字元<br>
根據索引獲取指定的字元
str = "中Hello Atguigu";
var result = str.charAt(6); // A
charCodeAt()
獲取指定位置字元的字元編碼(Unicode編碼) result = str.charCodeAt(0); String.formCharCode() // 可以根據字元編碼去獲取字元 result = String.fromCharCode(0x2692);
concat()
可以用來連線兩個或多個字串<br>
作用和+一樣
result = str.concat("你好","再見");
indexof()
該方法可以檢索一個字串中是否含有指定內容;
如果字串中含有該內容,則會返回其第一次出現的索引;
如果沒有找到指定的內容,則返回-1;
可以指定一個第二個引數,指定開始查詢的位置
lastIndexOf()
該方法的用法和indexOf()一樣, 不同的是indexOf是從前往後找,而lastIndexOf是從後往前找; 也可以指定開始查詢的位置 str = "hello hatguigu"; result = str.indexOf("h",1);//6 result = str.lastIndexOf("h",5);//0
slice()
可以從字串中擷取指定的內容;
不會影響原字串,而是將擷取到內容返回。
引數:
第一個,開始位置的索引(包括開始位置);
第二個,結束位置的索引(不包括結束位置);
如果省略第二個引數,則會擷取到後邊所有的;
也可以傳遞一個負數作為引數,負數的話將會從後邊計算。
str = "abcdefghijk";
result1 = str.slice(1,4);//bcd
result2 = str.slice(1,-1);//bcdefghij
console.log('result1 = '+result1)//result1 = bcd
console.log('result2 = '+result2)//result2 = bcdefghij
substring()
可以用來擷取一個字串,可以slice()類似;
引數:
第一個:開始擷取位置的索引(包括開始位置);
第二個:結束位置的索引(不包括結束位置);
不同的是這個方法不能接受負值作為引數,如果傳遞了一個負值,則預設使用0;
而且他還自動調整引數的位置, 如果第二個引數小於第一個,則自動交換。
substr()
用來擷取字串
引數:
1.擷取開始位置的索引
2.擷取的長度
str = "abcdefg";
result = str.substr(3,2);
console.log('result = '+result)//"result = de"
split()
可以將一個字串拆分為一個數組。
引數:
需要一個字串作為引數,將會根據該字串去拆分陣列
str = "abcbcdefghij";
result = str.split("d");
console.log('result = '+result)
// "result = abcbc,efghij"
// 如果傳遞一個空串作為引數,
// 則會將每個字元都拆分為陣列中的一個元素
str = "abcbcdefghij";
result = str.split("");
console.log('result = '+result)//"result = a,b,c,b,c,d,e,f,g,h,i,j" console.log(Array.isArray(result));//true
console.log(result[0]);//a
toUpperCase()
將一個字串轉換為大寫並返回
str = "abcdefg";
result = str.toUpperCase();
console.log('result = '+result)
// "result = ABCDEFG"
toLowerCase()
將一個字串轉換為小寫並返回。