JavaScript-字符串对象

为了方便操作数据类型,JavaScript提供了三个特殊的应用类型:String、Number和Boolean。
基本包装类型:把简单数据类型包装称为复杂数据类型
字符串的不可变
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。
注意:由于字符串的不可变,尽量不要大量的拼接字符串
根据字符返回位置
字符串所有的方法,都不会修改字符串本身(字符串不可变),操作完成会返回一个新的字符串
字符串对象,根据字符返回位置str.indexOf(‘要查找的字符’,[起始的位置])

var str = '改革春风吹满地,春天来了';
console.log(str.indexOf(‘春’));   //输出结果为2
console.log(str.indexOf(‘春’,3)); //从索引号是3的位置开始往后查找输出结果为8

案例:
查找字符串"aabbgfdafdsfdsafdsfdsafda"中所有a出现的位置以及次数

<script>
var str = 'aabbgfdafdsfdsafdsfdsafda';
        var index = str.indexOf('a');
        var num = 0;
        while (index !== -1) {
            console.log(index);
            num++;
            index = str.indexOf('a', index + 1);
        }
        console.log('a出现的次数为' + num + '次');
    </script>

根据位置返回字符(重点)

方法名说明返回值
charAt(index)返回指定位置的字符(index字符串的索引号)str.charAt(0)
charCodeAt(index)获取指定位置处字符的ASCII码(index索引号)str.charCodeAt(0)
str[index]获取指定位置处字符HTML5,IE8+支持和charAt()等效
//根据位置返回字符
//1、charAt(index)根据位置返回字符
var str = ‘andy’;
console.log(str.charAt(3));  //输出结果为y
//遍历所有的字符
for(var i = 0; i < str.length; i++){
	console.log(str.charAt(i));  //输出结果为a  n  d  y
}
//2、charCodeAt(index)返回相应索引号的字符ASCII值,目的:判断用户按下了那个键
console.log(str.charCodeAt(0));  //0为a,a对应的ASCII值为97
//3、str[index]  H5新增
console.log(str[0]);  //a

案例:返回字符位置
判断一个字符串‘aabfafdjafldahfdkafhakh’中每个字母分别出现几次,并统计其次数

<script>
var str = 'aabfafdjafldahfdkafhakh';
var o = {};
for (var i = 0; i < str.length; i++) {
    var chars = str.charAt(i);
    if (o[chars]) {
        o[chars]++;
    } else {
        o[chars] = 1;
    }
}
console.log(o);   //{a: 7, b: 1, f: 5, d: 3, j: 1,k:2, l:1}
//求里面出现最多的字母,和出现的次数
        var max = 0;
        var ch = '';
        for (var k in o) {
            if (o[k] > max) {
                max = o[k];
                ch = k;
            }
        }
console.log('出现最多的字母为' + ch + ',出现次数为' + max + '次');//输出结果为出现最多的字母为a,出现次数为7次
</script>

字符串操作方法(重点)

方法名说明
concat(str1,str2,str3…)concat()方法用于连接俩个或多个字符串,拼接字符串,等效于+,+更常用
substr(start,length)从start位置开始(索引号),length取的个数 重点掌握
slice(start,end)从start位置开始,截取到end位置,end取不到(他们俩都是索引号)
substring(start,end)从start位置开始,截取到end位置,end取不到基本和slice相同但是不接受负值
//1、concat()
var str = 'andy';
console.log(str.concat('red'));   //andyred
//2、substr('截取的起始位置','截取几个字符');
var str1 = '改革春风吹满地';
console.log(str1.substr(2,2));  //输出结果为春风   第一个2从第几个开始,第二个2是取几个字符

替换字符replace(‘被替换的字符’, ‘替换的字符’),注意只会替换一个字符

var str = ‘andy’;
console.log(str.replace('a', 'b'))  //输出结果为bndy
//把字符串'abcdefabcdefabcdef'里面的f替换成g
 var str = 'abcdefabcdefabcdef';
        while (str.indexOf('f') !== -1) {
            str = str.replace('f', 'g');
        }
        console.log(str);   //输出结果abcdegabcdegabcdeg

字符串转换为数组split(‘分隔符’)

var str = ‘red, pink, blue’;
console.log(str.split(','));  //输出结果(3) ["red", " pink", " blue"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值