JavaScript中通常分為兩種類型轉換,“隱式強制類型轉換”(implicit coercion)和“顯式強制類型轉換”(explicit coercion)。

下面所有代碼的源碼可以在此處查看。

一、強制轉換為字符串(ToString)

1)ToString

基本類型值的字符串化規(guī)則為:null轉換為"null",undefined轉換為"undefined",true轉換為"true"。數字的字符串化則遵循通用規(guī)則,不過那些極小和極大的數字使用指數形式:

// 1.07 連續(xù)乘以七個 1000var a = 1.07 * 1000 * 1000 * 1000 * 1000 * 1000 * 1000 * 1000;// 七個1000一共21位數字console.log(a.toString()); // "1.07e21"

對普通對象來說,除非自行定義,否則toString()(Object.prototype.toString())返回內部屬性[[Class]]的值

2)JSON

JSON.stringify(..)在對象中遇到undefined、function和symbol時會自動將其忽略,在數組中則會返回null(以保證單元位置不變)。

如果對象中定義了toJSON()方法,JSON字符串化時會首先調用該方法,然后用它的返回值來進行序列化。

JSON.stringify(undefined); // undefinedJSON.stringify(function() {})
        
		

網友評論