String类型的独特之处在于,他是唯一没有固定大小的原始类型。可以用字符串存储0或更多的Unicode字符,由16位整数表示(Unicode是一种国际字符集。)
字符串中每个字符都有特定的位置,首字符从位置0开始,第二个字符在位置1。字符串是由双引号或单引号生命的。而Java是由双引号来声明的。
StringLexington还包括几种字符字面量
\n 换行、
\t制表符、
\b空格,
\r回车、
\f换页符、
\\反斜杠,
\'单引号,
\\"双引号,
\0nnn八进制代码nnn(n是0到7的一个八进制数字)表示的字符、
\xnn十六进制代码nn(n是0到F中的一个十六进制数字)表示的字符、
\unnnn十六进制代码(n是0到F中的一个十六进制数字)
二、转换
转换成字符串需要用toString()方法。EX:content.toString();
在默认的模式中无论最初采用什么表示法声明数字,Number类型的toString()方法返回的都是数字的十进制表示,无论是八进制还是十六进制。但是采用toString()方法的基模式,可以用不同的基输出数字,例如2进制用toString(2),八进制用toString(8),十六进制用toString(16).
转换成数字的方法有两种:parseInt()和parseFloat();前者是转换成整型,后者是转换成浮点型。只有对String类型调用这些方法,他们才能正确运行,对其他类型返回都是NaN,判断方法是isNaN();
其中会有一些特别的地方,举例如下:
var iNum1=parseInt("1234abcd");result: 1234;
var iNum2=parseInt("0xA");result:10;
var iNum3=parseInt("22.5");result 22;
var iNum4=parseInt("blue");result NaN
parseInt()方法还有基模式,可以把二进制,八进制、十六进制或其他任何进制的字符串转换成整数,基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,需要调用parseInt()方法:
var iNum1=parseInt(”AF“,16);return 175;
var iNum2=parseInt("10",2);result:2;
var iNum3=parseInt("10",8);result:8;
parseFloat()的方法与parseInt()的处理方式相似。
强制类型转换:Boolean(value),Number(value),String(value);
用这三个函数之一转换值,将创建一个新值,存放有原始值直接转换成的值。这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串,非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串,数字0、undefined或null,它将返回false。
Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。还记得吗?