1. 程式人生 > 實用技巧 >標準庫:String 物件

標準庫:String 物件

標準庫:String 物件

概述

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對應的字串物件,有數值鍵(012)和length屬性,所以可以像陣列那樣取值。

除了用作建構函式,String物件還可以當作工具方法使用,將任意型別的值轉為字串。

String(true) // "true"
String(5) // "5"

上面程式碼將布林值true和數值5,分別轉換為字串。

靜態方法

String.fromCharCode()

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對應的字元是漢字