为了方便操作数据类型,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"]
本文深入讲解JavaScript中字符串的特性与操作方法,包括不可变性、查找、替换、切片及转换为数组等功能,通过实例演示如何高效处理字符串数据。

被折叠的 条评论
为什么被折叠?



