为了便于操作“基本类型值”,JS 提供了 三个 特殊的引用类型:Boolean、Number、String。这些类型和其他引用类型相似,但同时 也具备 与各自基本类型相应的特殊行为。 实际上:每当读取一个基本类型值的时候, “后台就会创建一个 对应的基本包装类型的对象”,从能能够调用一些方法来操作这些数据。
下面讲述一下比较常用的方法
Number对象的方法
toString:将数值转化为字符串,并且可以转换进制。
toLocaleString():根据本地数字格式转换为字符串
toFixed() : 将数字保留小数点后指定位数并转化为字符串
toExponential():将数字以指数形式,保留小数点后,指定位数并转化为字符串
toPrecision() : 指数形式或点形式表述数,保留小数点后年指定位数并转化为字符串
String方法
下面的方法经常会出现在各种前端开发面试和笔试的过程中,虽然不难,但是掌握好了,更加方便你随心所欲的操作字符串的内容。后面将会给出本人经常遇到的一些前端开发面试试题。
charAt(n):返回指定索引位置的字符
charCodeAt(n):以Unicode编码返回指定位置索引
字符串操作方法
concat(str1,str2,……):将字符串参数串联到调用该方法的字符串中
slice(n,m) 返回字符串n到m之间的字符串
substring(n,m) 同上
substr(n,m) 返回字符串n开始的m个字符串
分析:alert(box.substring(2))
//对象.方法(参数),这种写法明显是引用类型的写法,索引从0开始,从第2个位置开始截取,是基本类型,但又是特殊的引用类型,基本包装类型,因为它可以调用系统内置的方法。
上面这三个,当三个都只有一个参数,所得到的内容一样。即var a = ‘caibaojian’, a.slice(n) = a.substring(n) == a.substr(n);
当里面的参数n或者m小于0时的改变
a.slice(-2); length+(-2) = 10+2 = 8,第8位开始
a.substr(-2) 同上
a.substring(-2); 负数返回全部字符串
a.slice(2,-1); 10+(-1) = 9 (2,9);
a.slice(-2,-1); 10+(-2) = 8; 10+(-1) =9 (8,9);
a.substring(2,-1); 如果为负数,直接0,(2,0),第二个参数提前:a.substring(0,2);
a.indexOf(‘j’) 返回从初始位置搜索j第一次出现的位置,从0开始,输出6
a.lastIndexOf(‘j’) 返回从末尾位置搜索j第一次出现的位置,输出3
indexof里面还可以加第二个参数。
console.log(a.lastIndexOf(‘a’,5)); //*从第五个位置开始向前搜索a第一次出现的位置,输出4
console.log(a.indexOf(‘a’,7)); //从第五个位置开始搜索a第一次出现的位置,输出8.
//*使用循环输出一个字符串中指定字符的所有位置
var boxarr = [];
var pos = a.indexOf(‘a’);
while(pos>-1){
boxarr.push(pos);
pos = a.indexOf(‘a’,pos+1);
}
alert(boxarr);
//大小写转换
var box = ‘Mr.lee’;
//alert(box.toLowerCase()); //小写,mr.lee
//alert(box.toUpperCase()); //大写,MR.LEE
//alert(box.toLocaleLowerCase()); //小写,并且本地化
//alert(box.toLocaleUpperCase()); //大写,并且本地化
//字符串的模式匹配方法
var box = ‘Mr.Lee is Lee’;
alert(box.match(‘L’)); //找到L,返回L,否则返回null
alert(box.search(‘L’)); //找到L的位置,和indexOf类似
alert(box.replace(‘L’,’Q’)); //把L替换成Q
alert(box.split(‘ ‘)); //将空格分开处取出来分割成字符串