首页 > 代码库 > 基本包装类型

基本包装类型

基本包装类型

为了便于操作基本类型值,ECMAScript还提供了3个特殊的引用类型:Boolean,Number和String.这些类型与其他引用类型相似,但同时也具有各自的基本类型相应的特殊行为。

1.基本包装类型概念与Bollean,Number类型

(1)每当读取一个基本类型值的时候,后台就会自动创建一个对应的基本包装类型的对象。而且,此对象只存在于一行代码的执行瞬间,然后立即被销毁。

(2)把字符串,数字,布尔值传给构造函数会得到对应的实例。对基本包装类型的实例调用typeof会返回“object”。要注意,使用new操作符调用基本类型的构造函数,与直接调用同名的转型函数是不一样的。

(3)Boolean类型:需要注意的是,使用构造函数创建布尔的对象进行布尔运算时,对象都会被转换为true。

(4)Number类型:toString()将数字转换成字符串,接收一个参数,告诉它返回几进制                 toFixed()会按照指定的小数位返回数值的字符串表示,并且会自动舍入

                                toExponential()返回以指数表示法表示的字符串形式,参数决定小数位            toPrecision()自动调用适合的方法

 1 /*var s1="some text";
 2 var s2=s1.substring(2);         //基本包装类型也有方法
 3 
 4 var s1=new String("some text");
 5 var s2=s1.substring(2);
 6 s1=null;                         //可以这样理解为什么基本类型会有方法
 7 s1.color="red";
 8 alert(s1.color);                 //自动创建的基本包装类型对象只存在于代码创建的一瞬间,undefined*/
 9 
10 var value="http://www.mamicode.com/25";
11 var number=Number(value);
12 alert(typeof number);            //number
13 var obj=new Number(value);
14 alert(typeof obj);               //object
15 /*把字符串,数字,布尔值传给构造函数就会创建相应的实例,对基本包装类型的实例调用typeof会返回object*/
16 
17 /*Boolean类型*/
18 var falseObject=new Boolean(false);
19 var result=falseObject&&true;
20 alert(result);                   //true
21 var falseValue=http://www.mamicode.com/false;
22 result=falseValue&&true;
23 alert(result);                   //false
24 
25 /*Number类型*/
26 var num=10;
27 alert(num.toString());//"10"
28 alert(num.toString(2));//"1010"
29 alert(num.toString(8));//"12"
30 
31 alert(num.toFixed(2));//10.00此方法还会四舍五入
32 
33 var num=99;
34 alert(num.toPrecision(1));//"1e+2"
35 alert(num.toPrecision(2));//"99"
36 alert(num.toPrecision(3));//"99.0"

2.基本包装类型--String类型

(1)字符方法:charAt()返回对应参数位置的字符          charCodeAt()返回对应字符的编码          ECMAScript5支持使用方括号来访问字符串中的特定字符

(2)字符串操作方法:concat()与Array的一样,往字符串后添加多个字符串          

slice():接收两个参数,第一个参数指定开始位置,第二个参数指定到哪里结束,当参数有负数时,此方法会将传入的负数与字符串的长度相加

substring():接收两个参数,第一个参数指定从哪里开始,第二个参数指定从哪里结束。当有负数时,此方法会把所有的负数都变成0,另外substring(3,0)==substring(0,3)

substr():接收两个参数,第一个指定从哪里开始,第二个参数指定返回的字符串的个数。当有负数时,此方法会负的第一个参数加上字符串的长度

(3)位置方法indexOf()和lastIndexOf(),利用这两种位置方法,可以找到所有匹配的字符,并返回位置

(4)trim():删除字符串前后的所有空格

(5)大小写转换toLowerCase()和toUpperCase()

(6)match()与replace()方法都与正则表达式联合起来使用,match()联合正则,将匹配到的字符转换成数组返回。replace()顾名思义,替换匹配到字符。

(7)localeCompare()比较俩个字符串

(8)fromCharCode()接收多个字符编码,然后将它们转换成字符串

 1 var stringValue="http://www.mamicode.com/hello world";
 2 alert(stringValue.charAt(1));  //"e"相应位置的字符
 3 
 4 alert(stringValue.charCodeAt(1));//"101"字符的编码
 5 
 6 var stringValue="http://www.mamicode.com/hello";
 7 var result=stringValue.concat("world");
 8 alert(result);  //"hello world" 与数组的concat方法一样
 9 
10 /*利用两种位置方法,找到所有匹配的字符,并返回位置*/
11 var stringValue="http://www.mamicode.com/Lorem ipsum dolor sit amet,consectetur adipisicing elit";
12 var positions=new Array();
13 var pos=stringValue.indexOf("e");
14 while(pos>-1){
15     positions.push(pos);
16     pos=stringValue.indexOf("e",pos+1);};
17 alert(positions); //"3,24,32,35,52"
18 
19 var text="cat,bat,sat,fat";
20 var pattern=/.at/;
21 var matchs=text.match(pattern);
22 alert(matchs.index);//0
23 alert(matchs[0]);//"cat"
24 alert(matchs.lastIndex);//0
25 
26 var pos=text.search(/at/);
27 alert(pos);//1
28 
29 var result=text.replace("at","ond");
30 alert(result);//"cond,bat,sat,fat"
31 result=text.replace(/at/g,"ond");
32 alert(result);//"cond,bond,sond,fond"
33 
34 result=text.replace(/(.at)/g,"word($1)");
35 alert(result);//word(cat),word(bat),word(sat),word(fat)

基本包装类型