小白學js第九天之基本類型包裝

目錄

  • 基本類型和基本包裝類型的不一樣
  • 建立基本包裝類型對象
  • String對象
    • 建立字符串對象
    • 經常使用方法
    • 案例

此篇腦圖請戳[http://naotu.baidu.com/file/5bffe99e804bb037d5b9e55a68a68169?token=42130843de5e46b6]javascript

基本類型和基本包裝類型的不一樣

  • 基本類型是沒有方法的
  • 基本包裝類型有方法
// s1是基本類型,基本類型是沒有方法的
var s1 = 'zhangsan';
var s2 = s1.substring(5);

// 當調用s1.substring(5)的時候,先把s1包裝成String類型的臨時對象,再調用substring方法,最後銷燬臨時對象, 至關於:
var s1 = new String('zhangsan');
var s2 = s1.substring(5);
s1 = null;

建立基本包裝類型對象

var num = 18; //數值,基本類型
        var num = Number('18'); //類型轉換
        var num = new Number(18); //基本包裝類型,對象
        // Number和Boolean基本包裝類型基本不用,使用的話可能會引發歧義。例如:
        var b1 = new Boolean(false);
        var b2 = b1 && true; // 轉換成false的五種狀況 NaN undefined null '' ,這時b1已是一個Boolean的對象了.
        console.log(b2); //true

String對象

字符串的不可變java

var str = 'abc';
str = 'hello';
console.log(str); // abc
// 當從新給str賦值的時候,常量'abc'不會被修改,依然在內存中
// 從新給字符串賦值,會從新在內存中開闢空間,這個特色就是字符串的不可變
// 因爲字符串的不可變,在大量拼接字符串的時候會有效率問題

建立字符串對象3d

var str = new String('Hello World');

// 獲取字符串中字符的個數
console.log(str.length);

字符串對象的經常使用方法code

字符串全部的方法,都不會修改字符串自己(字符串是不可變的),操做完成會返回一個新的字符串,因此要聲明一個變量來接收返回值對象

// 1 字符方法
charAt()        //獲取指定位置處字符
charCodeAt()    //獲取指定位置處字符的ASCII碼
str[0]          //HTML5,IE8+支持 和charAt()等效
// 2 字符串操做方法
concat()        //拼接字符串,等效於+,+更經常使用
slice()         //從start位置開始,截取到end位置,end取不到
substring()     //從start位置開始,截取到end位置,end取不到
substr()        //從start位置開始,截取length個字符
// 3 位置方法
indexOf()       //返回指定內容在元字符串中的位置
lastIndexOf()   //從後往前找,只找第一個匹配的
// 4 去除空白   
trim()          //只能去除字符串先後的空白
// 5 大小寫轉換方法
to(Locale)UpperCase()   //轉換大寫
to(Locale)LowerCase()   //轉換小寫
// 6 其它
search()
replace()
split()
fromCharCode()
// String.fromCharCode(101, 102, 103);   //把ASCII碼轉換成字符串

案例索引

  • 截取字符串"我愛中華人民共和國",中的"中華"
var str = new String("我愛中華人民共和國");
        var newStr = str.substr(2, 2); //第一個參數是開始截取的字符索引,第二個參數截取字符的長度
        console.log(newStr); // 中華
  • "abcoefoxyozzopp"查找字符串中全部o出現的位置
var str = 'abcoefoxyozzopp';
        var index = -1;
        do {
            index = str.indexOf('o', index + 1); //第一個參數是查找的對象,第二個參數時從第幾個開始找
            if (index !== -1) {
                console.log(index);
            }

        } while (index !== -1)
  • 把字符串中全部的o替換成!
var str = 'abcoefoxyozzopp';
        //  abc!efoxyozzopp
        //  只會替換第一個找到的字符串
        // str = str.replace('o', '!');
        // console.log(str);
        var index = -1;

        do {
            index = str.indexOf('o', index + 1);
            if (index !== -1) {
                str = str.replace('o', '!');
            }
        } while (index !== -1);
  • 把字符串中的全部空白去掉' abc xyz a 123 '
// 傳統方法1 去空格
 var str = '   abc       xyz  a    123   ';
var index = -1;
        do {
            index = str.indexOf(' '); // 關鍵點在這裏,第二個參數是每次從第幾個數字開始日後找空格,這樣前面的空格跳過了
            console.log(index);
            if (index !== -1) {
                str = str.replace(' ', '');
            }
            console.log(str);
        } while (index !== -1);
        console.log(str);
        
        //方法 2
         var str = '   abc       xyz  a    123   ';
        str = str.replace(/\s*/g, '');
         console.log(str);

        //方法3
        var str = '   abc       xyz  a    123   ';
        var a = str.split(' ');
        console.log(a.join(''));
        
        //方法4
        
        var str = '   abc       xyz  a    123   ';

        var res = '';
        var arr = str.split('');
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] !== ' ') {
                res += arr[i];
            }
        }
        console.log(res);
  • 判斷一個字符串中出現次數最多的字符,統計這個次數
// - 判斷一個字符串中出現次數最多的字符,統計這個次數

        var str = 'abcoefoxyozzopp';
        var ch; //出現的字符
        var num; //出現的次數
        var o = {};
        //在對象中,經常使用的賦值操做爲obj.a = 1 或 obj.a = 1;
        // 讀取值一般就用obj[a] 
        for (var i = 0; i < str.length; i++) {
            var item = str.charAt(i);
            //給o一個item屬性,若是o裏面有這個屬性,返回true,執行o[item]++;, 若是沒有這個屬性,返回false,執行o[item] = 1(就是給o的item屬性賦值)
            if (o[item]) {
                //已經有該屬性
                o[item]++;
            } else {
                //沒有該屬性
                o[item] = 1;
            }
        }
        // console.log(o);
        num = 1;
        for (var key in o) {
            if (num < o[key]) {
                // 出現最多的次數
                num = o[key];
                // 出現最多的字符
                ch = key;
            }
        }
        console.log(ch + '是出現次數最多的字符,' + '出現了' + num + '次');

bye for now!token

相關文章
相關標籤/搜索