js-string对象

162 阅读2分钟

string的方法不会修改字符串本身,会返回一个新字符串。

length

不需要括号;返回string长度

    <script>
        var str = 'hello';
        console.log(str.length);
    </script>

indexOf()

括号内是字符串值;返回值是该字符串在字符中首次出现的索引位置(若不存在,返回-1)

lastIndexOf()(注意大小写!)

括号内是字符串值;返回值是返回该字符串值最后出现的索引位置

    <script>
        var str = 'hello,world';
        console.log(str.indexOf('l'));//结果是索引2
        console.log(str.lastIndexOf('l'));//结果是索引9
    </script>

includes()

括号内是字符串值;返回值true/false,如果存在,返回true,如果不存在,返回false(也可以用在数组上)

charAt()

括号内是索引;返回值是索引对应的字符串值(可以用来遍历字符串)

    <script>
        var str = 'abcoefoxyozzopp';
        for(var i = str.length;i>=0;i--){
            document.write(str.charAt(i));
        }
    </script>

concat()

括号内是需要拼接到后面的内容;返回值是拼接后的字符串(也可以使用+,效果是一样的)

replace(a,b)

将字符串中第一个出现的a,替换成b,如果需要将字符串中全部替换,可以使用while判断:

    <script>
        var str = 'abcoefoxyozzopp';
        while(str.includes('o')){
            str = str.replace('o','*')
        }
        document.write(str);
    </script>

split()

括号内是分隔符;返回值是将字符串按照分隔符分割成数组(回忆一下数组的join方法,将数组转成字符串)

match()

括号内是字符串值(可以是单个,也可以用是相邻的多个);返回值是数组,里面包含匹配项和匹配项的索引和长度(长度指的是match了一个)

toLowerCase()

返回小写的字符串。

toUpperCase()

返回大写的字符串。

    <script>
        let str = 'ASDFGFWAEVTFFGFHHFIU';
        let nstr = str.toLowerCase();  //返回小写的字符串
        let str1 = 'asdhhgggg'
        let mstr = str1.toUpperCase();  //返回大写的字符串
        document.write(nstr+'<br>');
        document.write(mstr);
    </script>

substring()——负数&NaN=0,顺序可以颠倒

substring(a,b) 截取索引a至b的内容,包括a不包括b
substring(a) 截取索引a至最后的内容,包括最后一位

    <script>
        //提取‘少壮不努力’
        var str = '少壮不努力老大徒伤悲';
        let str1 = str.substring(0,5);
        let str2 = str.substring(5,0);
        let str3 = str.substring(-3,5);//-3被看成是0
        let str4 = str.substring(NaN,5);//NaN被看成是0
        console.log(str1);
        console.log(str2);
        console.log(str3);
        console.log(str4);
    </script>

substr()——被废弃了,少用

substr(a,b) 从索引a开始截取b个内容。支持负数

slice()——支持负数,顺序不可以颠倒

slice(a,b) 截取索引a和索引b之间的内容,包括a不包括b,a的索引必须要在b前面
slice(a) 截取索引a至最后的内容,包括最后一位

    <script>
        var str = '少壮不努力老大徒伤悲';
        let str1 = str.slice(0,5);
        let str2 = str.slice(5,0);//不能这样写,没结果
        let str3 = str.slice(0,-5);
        let str4 = str.slice(5,-7);//不能这样写,没结果
        let str5 = str.slice(-10,-5);//-10对应的索引是str.length-10
        console.log(str1);
        console.log(str2);
        console.log(str3);
        console.log(str4);
        console.log(str5);
    </script>

简单类型和复杂类型

  • 对象类型有哪些? string、Number、Boolean、Symbol、undefined、null(返回值是空的对象)、Object(Array function)
  • 哪些对象可以new一个构造函数? String、Number、Boolean、Symbol(独一无二)、Object、Array、RegExp(正则)(function可以构造函数,但是不适应new)
  • 基本/简单数据类型:string Number Boolean Symbol undefined null
  • 引用/复杂数据类型Object 堆内存(实际的值) 栈内存(内存地址) obja={1} objb=obja 修改objb值,影响obja值 共用内存

注意点

1、字符串不能赋值,想形成新的字符串,可以先var一个空字符串,然后用concat或者+拼接。