Javascript作為一門弱類型語言,自動轉型是其非常重要的一部分。在進行變量類型轉換時,不需要進行強制類型轉換,Javascript自動將變量轉換為所需要的類型。
舉例來說,假設有一個字符串"2",若我們需要將其轉換成數字類型,可以直接進行計算,如下所示:
var str = "2";
console.log(str + 2); // "22"
console.log(str - 2); // 0
在第一個console中,Javascript將字符串類型和數字類型進行運算時,會自動將其轉換成字符串類型,并返回"22"結果。在第二個console中,Javascript將字符串類型和數字類型進行減法運算時,會自動將字符串類型轉換成數字類型(因為數字是唯一可進行減法運算的類型),并得到了0的結果。
在進行布爾型轉換時,Javascript如果遇到以下值都將自動轉換成false:
console.log(Boolean(false)); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
在進行對象類型轉換時,Javascript將其轉換成"Object"類型。例如:
console.log(typeof({})); // "object"
console.log(typeof([])); // "object"
console.log(typeof(new Date())); // "object"
在進行字符串類型轉換時,Javascript將變量轉換成字符串類型,例如:
console.log(String(123)); // "123"
console.log(String(true)); // "true"
console.log(String(null)); // "null"
console.log(String(undefined)); // "undefined"
總的來說,Javascript自動轉型的特性極大地方便了開發人員,減少了代碼的冗余程度和復雜度。