JavaScript学习-字符串对象

简介: 字符串对象

 字符串对象

基本概念

基本包装类型:把简单数据类型包装成了复杂数据类型。(基本数据类型就有了属性和方法)

var str='andy';
console.log(str.length);

image.gif

    • 把简单数据类型包装成复杂数据类型
    var temp=new String('andy');
    image.gif
      • 把临时变量的值给str
      str=temp;
      image.gif
        • 销毁临时变量
        temp=null;
        image.gif

        JavaScript提供了三个特殊的引用类型:string、number、boolean

          • 字符串的不可变

          不要大量拼接字符串,因为原来的字符串也在内存中。里面的值不变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。

          根据字符返回位置

          字符串所有的方法都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。

          1、indexOf('要查找的字符',[起始位置])

          从前往后查找

          var str="你是我的神";
          console.log(str.indexOf('我');//2
          console.log(str.indexOf('我',1);

          image.gif

          2、lastIndexOf('要查找的字符',[起始位置])

          从后往前查找

          var str="你是我的神";
          console.log(str.lastIndexOf('我');

          image.gif

          根据位置返回字符(☆☆☆)

          1、charAt(索引号)

          返回指定位置的字符

          var str="andy";
          console.log(str.charAt(3));

          image.gif

          2、遍历所有字符

          for(var i=0;i<str.length;i++){
           console.log(str.charAt(i));
          }

          image.gif

          3、charCodeAt(索引号)

          返回ASCII码,可以来判断用户按了哪个键。

          console.log(charCodeAt(o));

          image.gif

          4、str[index]

          H5新增的,有兼容问题

          字符串操作方法

          1、concat('字符串1','字符串2',…)

          var str='cindy';
          console.log(str.concat('red');

          image.gif

          2、substr(start,length)

          从start开始取length长度的字符

          var str='你是我的神';
          console.log(str.substr(2,2));

          image.gif

          3、替换字符replace('被替换的字符','替换的字符')

          只替换第一个字符

          var str='andandand';
          console.log(str.replace('a','b');//bndandand

          image.gif

          4、字符转换为数组split('分隔符')

          var str='red,pink,blue';
          console.log(str.split('&'));

          image.gif

          5、toUpperCase()转换为大写

          6、toLowerCase()转换成小写


          简单案例

            • 查找‘abcdefgabcdefg’中所有g出现的位置及次数
            var str='abcdefgabcdefg';
                    var index=str.indexOf('g');
                    var num=0;
                    while(index!==-1){
                        console.log(index);
                        num++;
                        index=str.indexOf('g',index+1);
                    }
                    console.log('g出现的次数是:'+num);

            image.gif

              • 判断一个字符串‘abcdefgabcdefg’中出现最多的字符,统计次数
              var str='abcdefgabcdefg';
                     var obj={};
                     for(var i=0;i<str.length;i++){
                         var chars=str.charAt(i);
                         if(obj[chars]){
                          obj[chars]++;
                         }else{
                             obj[chars]=1;
                         }
                     }
                     console.log(obj);
                     var max=0;
                     var ch='';
                     for(var k in obj){
                         if(obj[k]>max){
                             max=obj[k];
                             ch=k;
                         }
                     }
                     console.log(max);
                     console.log('最多的字符为'+ch);

              image.gif

                • ‘abcoefoxyozzoopp’把o替换为*
                var str='abcoefoxyozzoopp';
                        while(str.indexOf('o')!==-1){
                            str=str.replace('o','*');
                        }
                        console.log(str);

                image.gif


                目录
                相关文章
                |
                3天前
                |
                存储 JavaScript 索引
                js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
                ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
                17 3
                |
                15天前
                |
                JavaScript
                JS 获取对象数据类型的键值对的键与值
                JS 获取对象数据类型的键值对的键与值
                |
                25天前
                |
                JavaScript 前端开发
                Math对象:JavaScript中的数学工具
                Math对象:JavaScript中的数学工具
                27 1
                N..
                |
                1月前
                |
                存储 JavaScript 前端开发
                JavaScript中的对象
                JavaScript中的对象
                N..
                10 0
                |
                18天前
                |
                JavaScript 算法
                原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
                原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
                |
                15天前
                |
                JavaScript 前端开发 索引
                JavaScript中与字符串相关的方法
                JavaScript中与字符串相关的方法
                |
                4天前
                |
                JavaScript 前端开发 测试技术
                学习JavaScript
                【4月更文挑战第23天】学习JavaScript
                11 1
                |
                5天前
                |
                JavaScript 前端开发 开发者
                JavaScript中的错误处理:try-catch语句与错误对象
                【4月更文挑战第22天】JavaScript中的错误处理通过try-catch语句和错误对象实现。try块包含可能抛出异常的代码,catch块捕获并处理错误,finally块则无论是否出错都会执行。错误对象提供关于错误的详细信息,如类型、消息和堆栈。常见的错误类型包括RangeError、ReferenceError等。最佳实践包括及时捕获错误、提供有用信息、不忽略错误、利用堆栈信息和避免在finally块中抛错。
                |
                8天前
                |
                JavaScript 前端开发
                js字符串拼接
                js字符串拼接
                |
                10天前
                |
                JavaScript
                【Js】检查Date对象是否为Invalid Date
                【Js】检查Date对象是否为Invalid Date
                14 0