字符串不可变
当你声明一个字符串时,系统会选定一部分内存为这个字符串。但是当你对这个字符串进行改变时,系统不会对原有内存进行改变,而是重新选定一部分内存放置,例如:
var str = "oabcoefoxyozzoppaaaaaaaaaa";
str = 'qwqwq'
现在内存中有两块字符串内存,一块是qwqwq,一块是oabcoefoxyozzoppaaaaaaaaaa,由于字符串发生了改变,所以后者是垃圾内存,没有作用了。
根据内容返回位置
这部分和数组一样
根据位置返回内容
<script>
// 根据位置返回字符
// 1. charAt(index) 根据位置返回字符
var str = 'andy';
console.log(str.charAt(3));
// 遍历所有的字符
for (var i = 0; i < str.length; i++) {
console.log(str.charAt(i));
}
// 2. charCodeAt(index) 返回相应索引号的字符ASCII值 目的: 判断用户按下了那个键
console.log(str.charCodeAt(0)); // 97
// 3. str[index] H5 新增的
console.log(str[0]); // a
</script>
拼接裁剪等操作:
<script>
var str = "oabcoe";
var str1 = 'qwqwq'
console.log(str.concat(str1));
console.log(str.substr(1,4));
console.log(str.slice(1,4));
console.log(str.substring(1,4));
</script>
字符串替换
替换:replace
var str = "oabcoe";
console.log(str.replace('o','w'));
但是只能替换第一个o,结果为wabcoe
可以这样:
var str = "oabcoe";
console.log(str.replaceAll('o','w'));
结果为wabcwe
字符串转换为数组
用split(’分隔符‘)
<script>
var str2 = 'red, pink, blue';
console.log(str2.split(','));
var str3 = 'red&pink&blue';
console.log(str3.split('&'));
</script>