day7 字符串

一、字符串的属性

  // 字符串也是一个容器
        // 属性1  length属性  计算字符串的长度  一个字符为一个位置
        var str='123'
        console.log(str.length);//3
        // 属性2  也可以通过下标获取对应的字符  下标也是从0开始  到length-1结束

        // 属性3  数组是可变的 字符串是不可变的
        // 数组的length属性是可以修改的  字符串的length只能获取不能修改
        // 字符串的增删改查  不能操作原本的字符串  只能返回一个新的字符串

        // 不能通过length改变字符串长度
        // 不能通过下标赋值来改变字符串
        // 字符串不能改  因为他是常量  不能修改的量(只读的量)
 
二、字符串的方法
  
  // 字符串是一个容器  所以对应存在增删改查的方法  但是由于 字符串是只读的  增删改的方法不会修改原本字符串  二是返回一个新的字符串

        // 通过下标查询对应的字符  相当于字符串的下标获取
        charAt 返回的是字符串根据对应的下标来返回字符串
        var str='abc'
        console.log(str.charAt(0));//等同于str[0]
        // 获取ASCII码 获取对应位置下标位置的字符的ASCII码
        console.log(str.charCodeAt(0));//获取小标为0位置的字符a的Ascii 码
       
        // 将ASCII码反转为字符  这个方法为系统内置的静态方法
        // 100的字符为d
        // fromCharCode 根据ASCII码转换为对应的字符串  ASCII解码为字符串
        String.fromCharCode

        // indexOf 根据字符串来返回对应的第一次出现的下标  找不到返回-1
        // lastIndexOf()  根据字符串返回第一次出现的下标 从后往前找

        // 2.search方法
        // 字符串的查询方法
        var str='cbabababaabc'
        // 查询方法  返回第一次匹配的位置  返回值为当前找到的下标
        // 找不到返回-1
        // 传入为string类型的时候  根据你传入的参数进行对比  返回第一次对比成功的下标  如果没有返回-1
        // RegExp 正则对象  一般以两个//包起来
        var reg=/abc/
        console.log(str.search(reg));//返回为6


        // 什么是正则表达式  正则表达式是一个用来匹配的表达式  它可以用来匹配任意的字符串
        // RegExp为正则对象  一般的正则表达式以//包起来  里面书写的就是对应匹配的正则表达式
        // /abc/匹配abc正则
        // 正则表达式的常用内容
        // 以^开头 以$符号结尾
        var reg=/^abc$/
        var str='cbabababaabc'
        console.log(str.search(reg))//-1
        var str='abc'
        console.log(str.search(reg))//0

        // []表示元素的其中一个  {}表示个数
        var str='abcdefg'
        var rex=/[abc]/  //表示abc中的其中一个
        console.log(str.search(rex));//0

        var str='abcdefg'
        var rex=/[ab]{2}/   //表示a,b加起来是两个就可以  表示个数是两个
        console.log(str.search(rex))

        var str='abcdefg'
        var rex=/[ad]{2}/   //表示个数是两个 可以是a也可以是d
        console.log(str.search(rex))//search搜索的内容必须要连在一起  确保返回的下标是一个

        var str='aabccdefg'
        var rex=/[ac]{2}/   //匹配的是aa 或cc  或ac 或ca都可以
        console.log(str.search(rex))//0

        // +表示一个或多个
        var str='abccd'
        var reg=/[a]+/  //匹配 a  aa   aaa   aaaa
        console.log(str.search(reg))//2
        //在[]内可以用-表示区间但是必须是正的区间

        var rex=/[A-Z]/   //匹配的是A  B C D-Z  26个字母
        var rex=/[0-9]/  //匹配的是0-9  10个数值
        var rex=/[a-zA-Z1-9]/
        var rex=/[A-z]/  //正区间 以ASCII码

        //  \w表示字母数字及下划线   \W 相反  除了字母数字及下划线其他都匹配
        var rex=/\w/  //匹配字母数字下划线
        var str='_DGDEDE'
        console.log(str.search(rex));//0

        //  \s空白字符   \S非空白字符


        //3. replace方法
        // 替换匹配的值  变成另外一个值 返回一个新的字符串
            var str = "ababababa"
            var newStr = str.replace( 'a' , ' c')//将a替换为c这里只能运行一次他只会找到第一个a 将a替换为c//replace只会找到第一个匹配的将他替换为指定的字符串
            console.log(newStr);
            //将所有的a替换为c
            //循环遍历indexOf找到第一个下标如果没有找到就返回-1
            for(var i=0;i<str.length;i++){
                if(str.indexOf( 'a')!=-1){
                    str = str.replace( 'a' , 'c')//进行替换将替换的完的数据设置给对应的字符串}else[//I
                }else{
                    break
                }
            }
            console.log(str);



            // 4.substring
            // 截取方法   返回新的字符串
            var str='svggddgd'
            var newstr=str.substring(1,3)//开始位置下标截取到结束位置下标  不包含结束位置

            // sub 将内容填充到sub 的html标签中 然后生成一个新的字符串进行返回
            // substr(2,3)  从下标为2的位置开始  截取三个  没有写个数截取到最后
            // slice(2,4) 从下标为2的位置开始到下标为4(不包括4)  不写开始和结束位置  就是从开始截取到最后

           //5.split()
            // 分割方法  分割为数组   数组的join是连接成字符串
            var str='abdhhdhd'
            // 可以根据正则截取  返回值为string类型数组
            var strarr=str.split()
            console.log(strarr);

            var strarr=str.split(',')//不写表示所有的全部填入数组
            var strarr=str.split(',',1) //limit表示数量 写上去就是填入指定个数的元素到数组(从前往后填)

            // 6.
            // 转大写  转小写  全部转换
            var str='AFFghdede'
            var str1=str.toLocaleLowerCase()//转小写
            console.log(str1);
            var str2=str.toUpperCase()//转大写
            console.log(str2);
 
三、Math方法
  
  // Math  数学他有一系列数学计算的函数  (静态函数)
        // 静态属性  Π
        console.log(Math.PI);
        console.log(Math.E);
        //关于Math的静态方法
        //求大小max最大值min最小值
        console.log(Math.max(1,2));//返回2
        console.log(Math.min(1,2));//返回1//关于取整的几个方法
        //向下取整3.9 3
        console.log(Math.floor(3.9));//3
        //向上取整3.14
        console.log(Math.cei1(3.1));// 4
        //四舍五入3.1 返回3 3.9返回4
        console.log(Math.round(3.5));//4
        console.log(Math.round(3.4));//3
        //幂次方
        console.log(Math. pow(1,10));//1的10次方1
        console.log(Math.pow(2,3));//2的3次方8
        //开平方
        console.log(Math.sqrt(9));1/3
        //随机数
        console.log(Math.random());//随机生成0-1的数_不包含1包含0(随机数没有均衡随机)
        //取绝对值  永远是正数
        console.log(Math.abs(-2));//2
posted @ 2022-03-23 19:56  凌晨四点钟  阅读(42)  评论(0)    收藏  举报