js基础---内置对象(String)

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);

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/pilgrim_121/article/details/113064705
今日推荐