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: