zoukankan      html  css  js  c++  java
  • JS之String类

    JS之String类型

    字符串的特性

    • 由 0 个或多个16位Unicode 字符组成;

    • 引号包裹,单引号和双引号皆可;

    • 使用 .length属性可以访问字符串的长度;

      var str1 = "xie";
      var str2 = "learn JS happily";
      console.log(str1.length); // 3
      console.log(str2.length); // 16
      
    • 字符串一旦被创建,其值是不能改变的,若要改变必须销毁原有字符串,然后用另一个包含新值的字符串填充改变量;

    • 转义序列:

      • 换行,常用的,这个需要记住;

      • \

        斜杠是常用转义使用的

        • 单引号 常用

        • 双引号 常用

      下面的仅作了解就可以了

      • 制表符

      •  空格

      • 回车符

      • f 分页符

      • xnn 十六进制,n代表0-F

      • unnnn 以十六进制代码表示一个unicode字符

    类型转换

    • toString()

      • 把别的类型数据,转为字符串

        适用类型 Number/Boolean/String/Object 参数:number类型的数值基数;一般不需要写,仅作了解,如果需要按照2/8/16进制来转换,需要写;

    • String()

      • null

      • undefined

      • null和undefined没有toString方法,所以转换的时候用String()函数;

        var testNull = null;
        console.log(typeof testNull);//object 
        //var testString2=testNull.toString(); //Uncaught TypeError:Cannot read property 'toString' of null
        var testString3 = String(testNull);
        console.log(typeof testString3);//string
        
    • eval()

      • 计算字符串表达式的值并以数值形式返回;

        //eval
        var evalVal="1+2+5+8+10";
        console.log(typeof evalVal);//string
        console.log(evalVal); //"1+2+5+8+10"
        var evalComputed=eval(evalVal);
        console.log(evalComputed,typeof evalComputed);//26 "number"
        

    快速转换成字符串

    //+""用来转换字符串
    var numVal=2;
    var boolVal=false;
    var nullVal=null;
    var undefinedVal=undefined;
    var numValPlus=numVal+"";
    var boolValPlus=boolVal+"";
    var nullPlus=nullVal+"";
    var undefinedPlus=undefinedVal+"";
    console.log(numValPlus,typeof numValPlus);
    console.log(boolValPlus,typeof boolValPlus);
    console.log(nullPlus,typeof nullPlus);
    console.log(undefinedPlus,typeof undefinedPlus);
    

    某个数据并不仅限于Number类型;数组也是可以的;

    console.log([1,2,3,4]+"");//1,2,3,4
    

    字符串快速转换为数字

    console.log(+"1.2");
    
    console.log("1.1" + 1.1);  // "1.11.1"
    console.log(+"1.1" + 1.1); // 2.2
    
    //toString方法;
    //22 - > "22"
    console.log(typeof 22);
    console.log(typeof (22).toString());
    var testStr=22+"";//隐式调用toString方法
    console.log(typeof testStr);
    //eval()
    console.log("00000000000000000");
    console.log(eval("22+12"));//"22+12" -> 22+12 ->34
    //
    console.log("**********************");
    console.log(typeof (22+""));//string  22 -> "22"
    console.log(typeof (+"22"));//"22" -> 22 单目运算符+
    console.log([1,2,3,4]+"");//1,2,3,4
    console.log("**********************");
    console.log("1.1" + 1.1);
    console.log(+"1.1" + 1.1); // 2.2
    console.log((+"1.1") + (+1.1)); // 2.2
    

    运用map/reduce

    // 将字符串转换成数字
    function string2int(s){
        return s.split("").map((x)=>{return +x}).reduce((x,y)=>{return x*10+y});
    }
    string2int('12345') === 12345; // true
    

    refer:

    朱安邦的博客

    Mozilla官方文档

  • 相关阅读:
    因浮动使得容器失去高度的四种处理对策
    推荐一些国内的Jquery CDN免费服务
    layer.js 贤心制作的弹出层插件-不仅仅是弹层
    jquery 页面滚动到底部自动加载插件集合
    JQ应用第3款:返回顶部、底部、微信、反馈我们共存
    jquery.nicescroll.js可全屏可改滚动条颜色的滚动条插件-推荐
    jquery-fullpage-js制作页全屏滚动插件
    headroom.js –在不需要页头时将其隐藏
    Vue中删除重复上传的文件
    面向对象设计原则
  • 原文地址:https://www.cnblogs.com/jiaweixie/p/13069243.html
Copyright © 2011-2022 走看看