赞
踩
String
对象是 JavaScript 原生提供的三个包装对象之一,用来生成字符串对象。
- var s1 = 'abc';
- var s2 = new String('abc');
-
- typeof s1 // "string"
- typeof s2 // "object"
-
- s2.valueOf() // "abc"
上面代码中,变量s1
是字符串,s2
是对象。由于s2
是字符串对象,s2.valueOf
方法返回的就是它所对应的原始字符串。
字符串对象是一个类似数组的对象(很像数组,但不是数组)。
- new String('abc')
- // String {0: "a", 1: "b", 2: "c", length: 3}
-
- (new String('abc'))[1] // "b"
上面代码中,字符串abc
对应的字符串对象,有数值键(0
、1
、2
)和length
属性,所以可以像数组那样取值。
除了用作构造函数,String
对象还可以当作工具方法使用,将任意类型的值转为字符串。
- String(true) // "true"
- String(5) // "5"
上面代码将布尔值true
和数值5
,分别转换为字符串。
String
对象提供的静态方法(即定义在对象本身,而不是定义在对象实例的方法),主要是String.fromCharCode()
。该方法的参数是一个或多个数值,代表 Unicode 码点,返回值是这些码点组成的字符串。
- String.fromCharCode() // ""
- String.fromCharCode(97) // "a"
- String.fromCharCode(104, 101, 108, 108, 111)
- // "hello"
上面代码中,String.fromCharCode
方法的参数为空,就返回空字符串;否则,返回参数对应的 Unicode 字符串。
注意,该方法不支持 Unicode 码点大于0xFFFF
的字符,即传入的参数不能大于0xFFFF
(即十进制的 65535)。
- String.fromCharCode(0x20BB7)
- // "ஷ"
- String.fromCharCode(0x20BB7) === String.fromCharCode(0x0BB7)
- // true
上面代码中,String.fromCharCode
参数0x20BB7
大于0xFFFF
,导致返回结果出错。0x20BB7
对应的字符是汉字
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。