轉換為字符串是應用程序中的常見操作,幾乎所有語言都提供了將任何類型轉換為字符串的通用接口。 比如Java和C#的toString方法、C++的函數std::to_string,當然還有JavaScript的toString方法。

多數的JavaScript宿主環境(比如Node.js和Chrome)都提供了全局函數toString; 與此同時Object.prototype也定義了toString方法,使得所有對象都擁有轉換為字符串的能力。

比如一個Number轉換為String:

var n = 1;
n.toString();   // '1'

toString接受一個參數指定進制,默認為10. 可以利用這個參數生成包括字母和數字的隨機字符串:

Math.random().toString(36).substr(2);

random生成一個0到1的隨機數,36進制的字符集為[0-9a-z](36個),substr用來截掉起始的"0."。 另外Object.prototype.toString可以用來檢測JavaScript對象的類型:

var toString = Object.prototype.toString;

toString.call(new Date); // [object Date]
toString.call(new String); // [object String]
toString.call(Math); // [object Math]

// Since JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]

// 自定義類型
toString.call(new MyClass);   // [object Object]