字符串

字符串的定义

1、基本类型

var str = 'hi';

2、引用类型

var str = new String('hi');

3、值类型

var str = String('hi');

new String()和String()的区别

当String()和元素符new一起使用, 那么String()是作为构造函数使用的,它返回的是一个新创建的String对象。
当不用new运算符调用String()时,它只是转换成原始的字符串,并返回转换后的值。

字符串的方法

indexOf()和lastIndexOf()【常用】

indexOf() 查找字符串第一次出现的位置,如果没找到则返回-1
lastIndexOf() 查找字符串最后一次出现的位置,如果没找到则返回-1

        //indexOf()方法的底层实现
        var searchStr = 'abcdefabcde';

        function indexOf(str, index) {
            if (!index) { //当前如果时undefined的值
                index = 0; //默认为0
            }
            var len = str.length;
            for (var i = index; i < searchStr.length; i++) {
                var s = '';
                for (var j = 0; j < len; j++) {
                    s += searchStr[i + j];
                }
                if (s == str) {
                    return i;
                }
            }
            return -1;
        }
        console.log(indexOf('bc', 4));

indexOf()方法的应用:数组去重

        var arr = ['a', 's', 'd', 's', 'a']
        console.log(arr.indexOf('s')); //1
        console.log(arr.indexOf('h')); //-1


        //封装一个 去重的函数
        function unique(arr) {
            var newArr = [];
            for (i = 0; i < arr.length; i++) {
                if (newArr.indexOf(arr[i]) === -1) {
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }
        var arr = ['a', 's', 'd', 's', 'a'];
        console.log(unique(arr)); //['a', 's', 'd']

concat()、search()、replace();

concat()方法:连接字符串

        var str1 = 'hello';
        var str2 = 'world';
        var str = str1.concat(str2);
        console.log(str); //helloworld

search()方法:正则匹配 (返回第一次出现的位置)

        var str = 'Abcdabcd';
        var index = str.search(/abc/gi);
        console.log(index); //0

replace()方法:替换字符串

        var str = '123@zh@qq.com';
        var newStr = str.replace(/@/gi, '');
        console.log(newStr); //123zhqq.com
posted @ 2022-08-01 20:05  ^-^!  阅读(73)  评论(0编辑  收藏  举报