JS:字符串的内置函数(indexOf()、toString()、valueOf())和包装对象

一些字符串的内置函数:

indexOf()

1、indexOf()返回指定的字符串值在字符串中首次出现的位置。如果没有找到则返回 -1。

方法:(searchString: string, position?: number): number

找到字符串中l的位置:

        var str = 'hello';
        var re = str.indexOf('l');
        console.log(re);    //2

找到字符串中是有a:

        var str = 'hello';
        var re = str.indexOf('a');
        console.log(re); //-1

 

toString()

2、toString()把一个逻辑值转换为字符串,并返回结果。

        var str="hello";
        var re=str.toString();
        console.log(re);    //hello

 

valueOf()

3、valueOf()返回 String 对象的原始值。

        var str=new String("hello");
        var re=str.valueOf();
        console.log(str,typeof str,re);

打印结果:

 

包装对象:

这里变量str只是一个字符串原始类型,它怎么会有属性(length)和方法(indexOf()substring())呢?

   原因是:只要引用了字符串str的属性,JavaScript就会将字符串值通过调用new String(str)的方式转换成对象,这个对象继承了字符串(String)对象的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会被销毁

   同字符串一样,数字和布尔值也有各自的方法:通过Number()和Boolean()构造函数创建一个临时对象。存取字符串、数字或布尔值的属性时创建的临时对象就是包装对象。5种原始类型中的剩余两种null和undefined没有包装对象:访问它们的属性会造成一个类型错误(Uncaught TypeError)。

 

posted on 2022-06-25 10:56  香香鲲  阅读(248)  评论(0编辑  收藏  举报