js之基本包裝類型


為了便於操作“基本類型值”,JS 提供了 三個 特殊的引用類型:Boolean、Number、String。這些類型和其他引用類型相似,但同時 也具備 與各自基本類型相應的特殊行為。 實際上:每當讀取一個基本類型值的時候, “后台就會創建一個 對應的基本包裝類型的對象”,從能能夠調用一些方法來操作這些數據。 

1、String對象

String對象是基本類型,但是也是特殊的引用類型(基本包裝類型:內部創建對象,可以調用它自己內部的特殊行為)

1、String是基本包裝類型:

1 var box ='Mr.Xiao';     //字面量創建方式
2 
3 alert(box.substring(2)); //box 是基本類型,但是也是特殊的引用類型,在后台 會創建一個 基本包裝類型的對象;;所以可以調用 系統內置的函數

 

 

2、String對象不是引用類型(因為無法動態添加屬性和方法)

1 //注意  這種簡單類型不是引用類型(因為他們不能 添加屬性和方法)
2 box.name='xiao';
3 box.age=function(){
4        return 10;
5     }
6 
7 alert(box.name);  //undefined
8 alert(box.age());  //報錯

 

 

3、使用New修飾符創建的String對象就是Object引用類型的對象

new修飾符創建的對象是引用類型,可以動態添加屬性和方法。

1 var box =new String('Mr.Xiao');
2 box.name="xiao";
3 box.age=function(){
4       return 10;
5     }
6 alert(box.name);   //xiao
7 alert(box.age());   //10
8 alert(box.substring(2));  // .Xiao  也是可以執行的

 

 

4、String內部的方法和屬性

演示一些常用的方法:

1》字符串截取函數

JS中的字符串截取函數:slice()、substring()、substr()函數。

 1.都含有兩個參數:

 1 var str ='Mr.Wang';
 2 alert(str.charAt(3));//W
 3 alert(str[3]);//W
 4 
 5 //截取字符串方法:slice()、substring()、substr() 
 6 var str ='Mr.Wang';
 7 
 8 alert(str.slice(2,4));//.W   索引從 2開始 到 4結束 截取字符串
 9 alert(str.substring(2,4));//.W  效果同上
10 alert(str.substr(2,4)); //.Wan   從2開始 截取長度為 4 的字符串

 

 

 2.含有一個參數

  這個時候效果就相同了,都是從索引開始位置一直截取到最后。

//如果 只含有一個 參數,他們的效果就相同了,,就是 從索引位置  一直到最后
alert(str.slice(2));//.Wang
alert(str.substring(2));//.Wang
alert(str.substr(2));//.Wang

 

 

 3.當參數含有負數的時候

基本用不到就是了解一下而已

 1 //slice()翻譯方式:用字符串長度加上 負數的值 得到的 數字
 2 alert(str.slice(2,-1));//.Wan   7+(-1)=6——》翻譯之后是(2,6)
 3 alert(str.slice(-2,-1));//n     翻譯之后是(5,6)
 4 alert(str.slice(-2));//ng   同樣的翻譯道理
 5 
 6 //substring()翻譯方式:只要遇到 負數就 返回0,,如果前面的數字 大於 后面的數字,就將兩個數字調換位置
 7 alert(str.substring(2,-1)); // Mr   翻譯結果:(1,2)
 8 
 9 //substr() 翻譯方式:遇到 負數 直接返回0  ,但是不會調換位置
10 alert(str.substr(2,-1));  // 空字符串   翻譯結果:(2,0)
11 
12 
13 //PS:在IE 下  如果 substr() 方法 參數傳遞負值  那么就會 返回全部字符串
14 alert(str.substr(-2));//Mr.Wang

 

 

 2》indexOf()函數和lastIndexOf()函數

   indexOf():獲取第一個 含有 "搜索字符串"的位置  

   lastIndexOf()  :從后面開始 搜索到 第一個  "搜索字符串"的位置

 1 var str ='Mr.Wang is a good Wang.Wang is a best Wang.';
 2 alert(str.indexOf('Wang'));//3   默認是 索引為0  的位置 開始 搜索的
 3 
 4 alert(str.lastIndexOf('Wang'));//28      默認是從最后開始 搜索的
 5 
 6 
 7 alert(str.indexOf('Wang',10));//18    第二個參數:開始搜索的 索引位置
 8 alert(str.lastIndexOf('Wang',30)); //23   從索引為 30 的位置 開始 向前面搜索 
 9 
10 //PS:如果沒有找到 搜索字符串  那么就會 返回-1

 

 

 實現業務:查詢出上面的字符換“Wang”的所有的索引位置

var posArray=[];
var pos =str.indexOf('Wang');
while(pos>-1){
       posArray.push(pos);
       pos =str.indexOf('Wang',pos+1);
    
    }
alert(posArray);

 

 

5、Boolean沒有內置方法

 

6、Number內置方法 

 Number靜態屬性

 Number對象的方法

 

 上面使用方法和上面的基本相似,作用上面注明了。

 

7、基本包裝類型的 內部 方法其實都是 prototype屬性和方法,,也可以自己添加

 1 //可以 添加 原型屬性和方法(所有實例共享的作用),,他內部的 所有內置的方法都是原型方法
 2 String.prototype.AddNum=function(){
 3         return this +'111...';
 4     }
 5 var str ='xiao';
 6 alert(str.AddNum());//xiao111...
 7 
 8 var b=true;
 9 Boolean.prototype.ReturnFalse=function (){
10       return false;
11     }
12 alert(b.ReturnFalse());//false    可以添加 原型方法

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM