Javascript——字符串對象

1. 基本包裝類型
把簡單數據類型包裝成了複雜數據類型,這樣基本數據類型就有了屬性和方法。

var str = 'andy';
console.log(str.length);

對象纔有屬性和方法;複雜數據類型纔有屬性和方法
基本包裝類型:

//(1)把簡單數據類型包裝爲複雜數據類型
var temp = new String('andy');
//(2)把臨時變量的值給str
str = temp;
//(3)銷燬這個臨時變量
temp = null;

爲了方便操作基本數據類型,Javascript還提供了三個特殊的引用類型:String, Number和Boolean

2. 字符串的不可變
指裏面的值不可變,雖然看上去可以改變內容,但其實是地址變了,內存中新開闢了一個內存空間。

        var str = 'abc';
        str = 'hello';
        //當重新給str賦值,常量'abc'不會被修改,依然在內存中
        //重新給字符串賦值,會重新在內存中開闢空間,特點就是字符串的不可變
        //由於字符串的不可變,在大量拼接字符串的時候會有效率問題
        var str = '';
        for (var i = 0; i<100000; i++){
            str + = i;
        }
        console.log(str); //這結果需要花費大量時間來顯示,需要不斷開闢新的空間

3. 根據字符返回位置
字符串所有的方法,都不會修改字符串本身(字符串不可變),操作完成會返回一個新的字符串。
字符串對象,根據字符返回位置,str.indexOf(‘要查找的字符’,[起始的位置])

var str = '成就如沙堡,生命如海浪';
console.log(str.indexOf('如'));
console.log(str.indexOf('如',3));//從索引號是3的位置開始往後查找

案例
查找字符串"abcoefoxyozzopp"中所有o出現的位置及次數
核心算法:先查找第一個o出現的位置,然後只要indexOf返回的結果不是-1就繼續往後查找,因爲indexOf只能查找到第一個,所以後面的查找,利用第二個參數,當前索引加1,從而繼續查找。

        var str = "abcoefoxyozzopp";
        var index = str.indexOf('o');
        var num = 0;
        //console.log(index);
        while (index !==-1){
            console.log(index);
            num++;
            index = str.indexOf('o',index+1);
        }
        console.log('o出現的次數是:'+num);

4. 根據位置返回字符
charAt(index)

        var str = 'andy';
        console.log(str.charAt(3));
        //遍歷所有字符
        for(var i = 0; i<str.length; i++){
            console.log(str.charAt(i));
        }

charCodeAt(index)
目的:判斷用戶按下了哪個鍵

        var str = 'andy';
        console.log(str.charAt(3));
        //遍歷所有字符
        for(var i = 0; i<str.length; i++){
            console.log(str.charAt(i));
        }
        console.log(str.charCodeAt(0));

str[index]

        var str = 'andy';
        console.log(str.charAt(3));
        //遍歷所有字符
        for(var i = 0; i<str.length; i++){
            console.log(str.charAt(i));
        }
        console.log(str[0]);

總結

方法名 說明 返回值
charAt(index) 返回指定位置的字符(index字符串的索引號) str.charAt(0)
charCodeAt(index) 獲取指定位置處字符的ASCII碼(index索引號) str.charCodeAt(0)
str[index] 獲取指定位置處字符 HTML5, IE8+支持和charAt()等效
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章