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
    
  • 字符串一旦被创建,其值是不能改变的,若要改变必须销毁原有字符串,然后用另一个包含新值的字符串填充改变量;

  • 转义序列:

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

    • \\

      斜杠\是常用转义使用的

      • \’ 单引号 常用

      • \” 双引号 常用

    下面的仅作了解就可以了

    • \t 制表符

    • \b 空格

    • \r 回车符

    • \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官方文档

posted @ 2020-06-08 23:01  Mikejiawei  阅读(101)  评论(0编辑  收藏  举报