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は最初のものしか見つからないため、次の検索では2番目のパラメーターを使用し、現在のインデックスを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);