Javascript——字符串对象

本文深入探讨了JavaScript中基本数据类型的包装机制,解析了字符串的不可变特性及其对性能的影响,同时介绍了如何使用字符串方法进行高效操作,包括查找、替换和遍历。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 基本包装类型
把简单数据类型包装成了复杂数据类型,这样基本数据类型就有了属性和方法。

var str = 'andy';
console.log(str.length);

对象才有属性和方法;复杂数据类型才有属性和方法
基本包装类型:

//(1)把简单数据类型包装为复杂数据类型
var temp = new String('andy');
//(2)把临时变量的值给str
str = temp;
//(3)销毁这个临时变量
temp = null;

为了方便操作基本数据类型,Javascript还提供了三个特殊的引用类型:String, Number和Boolean

2. 字符串的不可变
指里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。

        var str = 'abc';
        str = 'hello';
        //当重新给str赋值,常量'abc'不会被修改,依然在内存中
        //重新给字符串赋值,会重新在内存中开辟空间,特点就是字符串的不可变
        //由于字符串的不可变,在大量拼接字符串的时候会有效率问题
        var str = '';
        for (var i = 0; i<100000; i++){
            str + = i;
        }
        console.log(str); //这结果需要花费大量时间来显示,需要不断开辟新的空间

3. 根据字符返回位置
字符串所有的方法,都不会修改字符串本身(字符串不可变),操作完成会返回一个新的字符串。
字符串对象,根据字符返回位置,str.indexOf(‘要查找的字符’,[起始的位置])

var str = '成就如沙堡,生命如海浪';
console.log(str.indexOf('如'));
console.log(str.indexOf('如',3));//从索引号是3的位置开始往后查找

案例
查找字符串"abcoefoxyozzopp"中所有o出现的位置及次数
核心算法:先查找第一个o出现的位置,然后只要indexOf返回的结果不是-1就继续往后查找,因为indexOf只能查找到第一个,所以后面的查找,利用第二个参数,当前索引加1,从而继续查找。

        var str = "abcoefoxyozzopp";
        var index = str.indexOf('o');
        var num = 0;
        //console.log(index);
        while (index !==-1){
            console.log(index);
            num++;
            index = str.indexOf('o',index+1);
        }
        console.log('o出现的次数是:'+num);

4. 根据位置返回字符
charAt(index)

        var str = 'andy';
        console.log(str.charAt(3));
        //遍历所有字符
        for(var i = 0; i<str.length; i++){
            console.log(str.charAt(i));
        }

charCodeAt(index)
目的:判断用户按下了哪个键

        var str = 'andy';
        console.log(str.charAt(3));
        //遍历所有字符
        for(var i = 0; i<str.length; i++){
            console.log(str.charAt(i));
        }
        console.log(str.charCodeAt(0));

str[index]

        var str = 'andy';
        console.log(str.charAt(3));
        //遍历所有字符
        for(var i = 0; i<str.length; i++){
            console.log(str.charAt(i));
        }
        console.log(str[0]);

总结

方法名说明返回值
charAt(index)返回指定位置的字符(index字符串的索引号)str.charAt(0)
charCodeAt(index)获取指定位置处字符的ASCII码(index索引号)str.charCodeAt(0)
str[index]获取指定位置处字符HTML5, IE8+支持和charAt()等效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值