JavaScript学习【11.3】——内置对象:字符串对象String

字符串对象String

		var str = 'candy';
        console.log(str.length); // 5
        // 对象(也就是复杂数据类型)才有属性和方法
        // 在此的简单数据类型为什么会有length属性???
        // 基本包装类型: 就是把简单数据类型 包装成为了 复杂数据类型
        // 上述代码的实际执行过程:
        // (1)把简单数据类型 包装成为了 复杂数据类型
        var temp = new String('candy');
        // (2)把临时变量的值给str
        str = temp; // 此时str就是一个复杂数据类型
        // (3)销毁临时变量
        temp = null; 
字符串的不可变

指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。

  • 不要大量拼接字符串,不要频繁更改字符串。

字符串中所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串(即新开辟一块内存,存放)。

根据字符,返回字符位置【索引】
方法名 说明 返回值
indexOf(‘要查找的字符’[,开始位置]) 查找给定元素第一个索引 存在返回索引号,不存在,返回-1
lastIndexOf(元素) 给定元素的最后一次索引 存在返回索引号,不存在,返回-1
		var str = 'hello world';
        console.log(str.indexOf('l'));  // 2
        console.log(str.indexOf('l', 5));  // 9 从索引5开始查找 
        console.log(str.lastIndexOf('l')); // 9

        // 查找字符串'abcoefoxyozzopp'中所有o出现的位置以及次数
        // 先查找第一个o出现的位置——只要indexOf返回的不是-1,就继续往后查找(从当前索引+1开始查找)
        var str = 'abcoefoxyozzopp';
        var arr = []; // 存放位置  实际上是索引
        for(var i = str.indexOf('o'); i < str.length; ){
   
            arr.push(i);
            i = str.indexOf('o', i+1);
            if(i == -1){
   
                break;
            }
        }
        console.log(arr); // [3, 6, 9, 12]
根据位置返回字符【重点】
方法名 说明 使用
charAt(index) 返回指定位置的字符(index字符串的索引) str.charAt(0)
charCodeAt(index) 获取指定位置处字符的ASCII码;可以判断用户按下了哪个键-游戏 str.charCodeAt(0)
str[index] 获取指定位置处字符 HTML5,IE8+支持 和charAt()等效
		// 根据位置返回字符
        var str = 'I love myself!';
        console.log(str.charAt(3));
        // 遍历所有的元素
        for(var i = 0; i < str.length; i++){
   
            console.log(str.charAt(i));
        }
        console.log(str.charCodeAt(2));
        // H5 新增的
        console.log(str[4]); // v
案例
 		// 前情提要
        /* 有一个对象
        var o = {
            age : 18
        }
        if(o['age']){
            console.log('里面有该属性');
        }
        else{
            console.log('没有该属性');
        } */


        // 判断一个字符串'abcoefoxyozzopp'中出现次数最多的字符,并统计其次数
        /*思路
        1、把每个字符存储给对象,如果对象没有该属性,就为1,如果存在了,就+1
        2、遍历对象,得到最大值和该字符
        */
        var str = 'abcoefoxyozzopp';
        var obj = {
   }; // 存放字符及其出现次数
        for(var i = 0; i < str.length; i++){
   
            var c = str.charAt(i);
            if(obj[c]){
   
                obj[c] ++;
            }
            else{
   
                obj[c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值