var str = 'andy';
console.log(str.length);
//相当于以下代码
// 1. 生成临时变量,把简单类型包装为复杂数据类型
var temp = new String('andy');
// 2. 赋值给我们声明的字符变量
str = temp;
// 3. 销毁临时变量
temp = null;
1.字符串具有不可变性
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。
var str='小明';
console.log(str);//小明
str='小新';
console.log(str);//小新
2.相关方法
案例1: 查找字符串中某个字符出现的次数
思想:
① 核心算法:先查找第一个o出现的位置
② 然后 只要indexOf 返回的结果不是 -1 就继续往后查找
③ 因为indexOf 只能查找到第一个,所以后面的查找,利用第二个参数,当前索引加1,从而继续查找
var str = 'absodjogokoroy';
var count = 0;
var index = str.indexOf('o'); //o第一次出现的索引位置
while (index != -1) {
console.log(index); //
count++;
index = str.indexOf('o', index + 1);
}
console.log(count);
案例2:统计出现最多的字符和次数
思想:
① 核心算法:利用 charAt() 遍历这个字符串
② 把每个字符都存储给对象, 如果对象没有该属性,属性值就为1,如果存在了,属性值就 +1
③ 遍历对象,得到最大值和该字符
var str = 'absodjogokoroy';
var obj = {
};
for (var i = 0; i < str.length; i++) {
if (obj[str.charAt(i)]) {
//对象中含字母属性
obj[str.charAt(i)]++;
} else {
//对象中不含字母属性
obj[str.charAt(i)] = 1;
}
}
console.log(obj);
var max = 0;
var ch = '';
for (var k in obj) {
if (max < obj[k]) {
max = obj[k];
ch = k;
}
}
console.log("出现次数最多的字符是:" + ch + ",次数是:" + max);