強制轉換方法:1、使用String()、Number()或toString()函數進行字串與數字之間的顯示類型轉換;2、使用Boolean()函數將值轉換為布林值;3、使用「 」、「-」運算子進行字串和數字之間的隱式類型轉換。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
字串和數字之間的轉換是透過String(..) 和 Number(..) 這兩個內建函數。
除了String(..) 和Number(..) 以外,還有其他方法可以實作字串和數字之間的明確轉換:
let a = 42; let b = a.toString(); let c = "3.14"; let d = +c; b; // "42" d; // 3.14
a.toString() 是明確的,不過其中涉及隱式轉換。因為 toString() 對 42 這樣的基本型別值不適用,所以 JavaScript 引擎會自動為 42 建立一個封裝對象,然後對該對象呼叫 toString()。這裡顯式轉換含有隱式轉換。
let a = "0"; let b = []; let c = {}; let d = ""; let e = 0; let f = null; let g; Boolean( a ); // true Boolean( b ); // true Boolean( c ); // true Boolean( d ); // false Boolean( e ); // false Boolean( f ); // false Boolean( g ); // false
雖然 Boolean(..) 是明確的,但並不常用。明確強制類型轉換為布林值最常用的方法是!!
let a = "0"; let b = []; let c = {}; let d = ""; let e = 0; let f = null; let g; !!a; // true !!b; // true !!c; // true !!d; // false !!e; // false !!f; // false !!g; // false
(1) 運算子
即能用於數字加法,也能用於字串拼接
如果的其中一個運算元是字串(或透過對其呼叫ToPrimitive 抽像操作得到字串),則執行字串拼接;否則執行數字加法。因為陣列的 valueOf() 運算無法得到簡單基本型別值,於是它轉而呼叫 toString()。因此下例中的兩個陣列變成了 "1,2" 和 "3,4"。將它們拼接後返回 "1,23,4"。
let a = "42"; let b = "0"; a + b; // "420" let c = 42; let d = 0; c + d; // 42 let x = [1,2]; let y = [3,4]; x + y; // "1,23,4"
可以使用運算子進行字串轉換,將數字和空字串"" 相來將其轉換為字串
let a = 42; let b = a + ""; b; // "42"
a " "(隱式)和前面的String(a)(顯式)之間有一個細微的差別需要注意。
根據 ToPrimitive抽像運算規則,a ""會對a呼叫valueOf()方法,然後透過ToString抽象 運算將傳回值轉換為字串。而 String(a) 則是直接呼叫 ToString()。它們最後回傳的都是字串,但如果a 是物件而非數字結果可能會不一樣
let a = { valueOf: function() { return 42; }, toString: function() { return 4; } }; a + ""; // "42" String( a ); // "4"
#(2)從字串強制型別轉換為數字的情況
-是數字減法運算符,因此a - 0會將a強制型別轉換為數字。也可以使用a * 1和a /1,因為這兩個運算子也只適用於數字,只不過這樣的用法不太常見
let a = [3]; let b = [1]; a - b; // 2
【推薦學習:javascript高級教程】
以上是javascript怎麼進行型別強制轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!