String对象
来自《JavaScript 标准参考教程(alpha)》,by 阮一峰
目录
概述
String
对象是JavaScript原生提供的三个包装对象之一,用来生成字符串的包装对象。
var s1 = 'abc';
var s2 = new String('abc');
typeof s1 // "string"
typeof s2 // "object"
s2.valueOf() // "abc"
上面代码中,变量s1
是字符串,s2
是对象。由于s2
是对象,所以有自己的方法,valueOf
方法返回的就是它所包装的那个字符串。
实际上,字符串的包装对象是一个类似数组的对象(即很像数组,但是实质上不是数组)。
new String("abc")
// String {0: "a", 1: "b", 2: "c", length: 3}
除了用作构造函数,String
对象还可以当作工具方法使用,将任意类型的值转为字符串。
String(true) // "true"
String(5) // "5"
上面代码将布尔值ture
和数值5
,分别转换为字符串。
String.fromCharCode()
String对象提供的静态方法(即定义在对象本身,而不是定义在对象实例的方法),主要是fromCharCode()
。该方法的参数是一系列Unicode码点,返回对应的字符串。
String.fromCharCode(104, 101, 108, 108, 111)
// "hello"
上面代码中,fromCharCode
方法接受5个Unicode码点作为参数,返回它们组成的字符串。
注意,该方法不支持Unicode码点大于0xFFFF
的字符,即传入的参数不能大于0xFFFF
。
String.fromCharCode(0x20BB7)
// "ஷ"
上面代码返回字符的编号是0x0BB7
,而不是0x20BB7
。它的根本原因在于,码点大于0xFFFF
的字符占用四个字节,而JavaScript只支持两个字节的字符。这种情况下,必须把0x20BB7
拆成两个字符表示。
String.fromCharCode(0xD842, 0xDFB7)
// "