JavaScript高级程序设计学习5_引用类型_基本包装类型

Number

Number是与数字对应de的引用类型,要创建Number,可以调用Number构造函数向其中传入相应的数值。其中有两个方法:

1、toFixed() 按照指定的小数位返回数值的字符串表示,如下:

let num = 10;
alert(num.toFixd(2));//"10.00"

2、toPrecision()与toFixed()一样接受一个参数,而且该参数同样也是指定输出结果的位数,可能返回固定大小(fixd)

格式,也可能返回e表示法(exponential)格式、如下: 

let num = 99;
alert(num.toPrecision(1));//"1e+2"
alert(num.toPrecision(2));//"99"
alert(num.toPrecision(3));//"99.0"

String

1、charAt()和charCodeAt()用于访问字符串中特定字符de的方法,如下:

let ss = "hello world";
alert(ss.charAt(1));//"e"
alert(ss.charCodeAt(1));//"101" 字母小写e的编码

2、concat()将一个或多个字符拼接、不会修改原始字符串,如下:

let ss = "hello";
let result = ss.concat("world","!");

alert(result);//"hello world!"

但在一般开发中使用 +,因为比较简便易行,特别是字符串比较多的时候。

3、slice(),substr(),substring()和concat()一样不会修改原始字符串,slice(),substring()返回开始位置到结束为止(第二个参数)的字符串,substr()返回开始位置和长度(第二个参数)的字符串,如下:

let ss = "hello world";
alert(ss.slice(3));//"lo world"
alert(ss.substr(3));//"lo world"
alert(ss.substring(3));//"lo world"
alert(ss.slice(3,7));//"lo w"
alert(ss.substr(3,7));//"lo worl"
alert(ss.substring(3,7));//"lo w"

当传递负值的时候行为就不同了,slice()方法会将传入的负值与字符串的长度相加,substr()方法会将负的第一个参数加上字符串的长度、而将负的第二个参数转换为0,substring()方法会把所有负值参数转换为0,如下:

扫描二维码关注公众号,回复: 3676341 查看本文章
let ss = "hello world";
alert(ss.slice(-3));//"rld"
alert(ss.substr(-3));//"rld"
alert(ss.substring(-3));//"hello world"
alert(ss.slice(3,-4));//"lo w"
alert(ss.substr(3,-4));//""
alert(ss.substring(3,-4));//"hel"

4、indexOf()、lastIndexOf()返回字符串的位置

5、trim()去掉字符串前后的空格

6、toUpperCase()、转化为大写,toLowerCase()、转换为小写

7、字符串的模式匹配方法

match()方法

只接受一个参数,要么是一个正则表达式,要么是一个RegExp对象,返回数组,如下:

let text = 'cat,bat,sat,fat';
let param = '/.at'/;

//与pattern.exrc(text)相同
alert(text.match(param).index);//0
alert(text.match(param).lastIndex);//0
alert(text.match(param)[0]);//"cat"

search()方法

唯一参数与match相同,返回第一个匹配项的索引,如下:

let text = 'cat,bat,sat,fat';
let param = '/at'/;

alert(text.search(param));//1

replace()方法

这个方法可以收两个参数:第一个是一个RegExp对象或一个字符串、第二个是一个字符串或一个函数,如果第一个参数是字符串,那么只会替换第一个匹配的字符串,要想替换所有的字符串,唯一的办法就是提供一个正则表达式,而且要制定全局(g)标志,如下:

let text = 'cat,bat,sat,fat';
let result= text.replace('at','ond');
alert(result);//'cond,bat,sat,fat'

result= text.replace(/at/g,'ond');
alert(result);//'cond,bond,sond,fond'

如果第二个参数是字符串,还可以使用以上的特殊字符序列,将正则表达式操作得到的值插入到结果字符串中,如下:

let text = 'cat,bat,sat,fat';
let result= text.replace(/(.at)/g,'word($1)');
alert(result);//'word(cat),word(bat),word(sat),word(fat)'

第二个参数也可以是函数,在只有一个匹配项的情况下,会向这个函数传递第3个参数:模式的匹配项、模式匹配项在字符串的位置和原始字符串。该函数返回一个字符串,表示应该被替换的匹配项,如下:

function aa(text){
    return text.replace(/[<>"&]/g,function(match,pos,text){
        switch(match){
            case '<':
                return '&lt';
            case '>':
                return '&gt';
            case '&':
                return '&amp';
            case '\"':
                return '&quot';
        }
    });
}

alert(aa('<p class=\"greetting\">Hello world!</p>'));//&ltp class=&quotgreetting&quot&gtHello world!&lt/p&gt

split()方法

返回分割后的数组

8、localeCompare()比较两个字符串,源字符串大于参数,返回1、相等返回0、小于返回-1

let color = 'yellow';

alert(color.localeCompare('brick'));//1
alert(color.localeCompare('yellow'));//0
alert(color.localeCompare('zoo'));//-1

猜你喜欢

转载自blog.csdn.net/kl_123456/article/details/82712746