String类型
定义
String类型用于表示字符串,字符串需放在单引号或双引号中。
var abc = 'abc';
var def = "def";
用单引号表示的字符串与用双引号表示的字符串完全相同。不过,以双引号开头的字符串必须以双引号结尾,单引号同理。
var abc = "abc';//语法错误
单引号内部可以使用双引号,双引号内部可以使用单引号
var a = "Let's go!";
若想在单引号内部使用单引号或双引号内部使用双引号,则需内部的单(双)引号前面加上反斜杠,用来转义。
var a = "Did she say \"Hello\""
var a = 'Did she say \'Hello\''
转义
String数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者有其他用途的字符
\0 空字节
\n 换行
\t 制表
\b 空格
\r 回车
\f 进纸
\\ 斜杠
\' 单引号
\" 双引号
\xnn 以十六进制nn表示一个字符(n为0-f),如\x41表示'A'
\unnnn 以十六进制nnnn表示一个Unicode字符(n为0-f),如\u03a3表示希腊字符ε
如果在非特殊字符前使用反斜杠\,则反斜杠\会被忽略
console.log("\a");//a
如果字符串需要包含反斜杠,则需要在反斜杠前面在多加一个反斜杠用来转义
console.log("\\a")//\a
字符串与数组
字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)。如果方括号中的数字超过字符串的长度,或者方括号中根本不是数字,则返回undefined。
var lang = "javascript";
console.log(lang[0]);//j
console.log(lang[1]);//a
console.log(lang[5]);//c
console.log(lang[10]);//undefined 如果方括号中的数字超过字符串的长度,或者方括号中根本不是数字,则返回undefined。
console.log(lang['a']);//undefined 如果方括号中的数字超过字符串的长度,或者方括号中根本不是数字,则返回undefined。
但是,字符串与数组的相似性仅此而已。实际上,无法改变字符串之中的单个字符。
length
任何字符串的长度都可以通过访问其length属性取得,且该属性无法改变
console.log(lang.length);//10
lang.length = 20;
console.log(lang.length);//10 该属性无法改变
转换为字符串
要把一个值转换为一个字符串有两种方式
toString( )
数值,布尔值,对象和字符串值都有toString( )方法。但undefined和null没有该方法。
var num = 11;
var numAsString = num.toString();//"11"
调用数值的toString( )方法时,可以传递一个参数:表示toString( )方法以几进制的方式返回数值的字符串形式
var num = 10;
alert(num.toString());//"10"
alert(num.toString(2));//"1010"
alert(num.toString(8));//"12"
alert(num.toString(10));//"10"
alert(num.toString(16));//"a"
String( )
在不知道要转换的值是不是null或undefined时,可以使用String( )函数,这个函数能将任何类型的值转换为字符串。String( )遵循如下规则:
- 如果值有toString( )方法,则调用该方法并返回相应结果;
- 如果有null,则返回"null";
- 如果有undefined,则返回"undefined"。
var value1 = 10;
var value2 = true;
var value3= null;
var value4;
console.log(String(value1))//"10"
console.log(String(value2))//"true"
console.log(String(value3))//"null"
console.log(String(value4))//"undefined"
利用+拼接字符串
任何数据数据类型和字符串类型进行+拼接操作,得到的都是字符串类型,利用+与空字符串来完成转化为字符串操作
console.log(typeof(10+''));//String
参考
- 《JavaScript高级程序设计》
- 《JavaScript 标准参考教程(alpha)》, 阮一峰 http://javascript.ruanyifeng.com/grammar/string.html