可變強制轉換
有些語言要求你提前定義要宣告的變數型別。JavaScript 不這樣做; 它會試圖自己解決這個問題。有時這可能會產生意外行為。
如果我們使用以下 HTML
<span id="freezing-point">0</span>
並通過 JS 檢索其內容,它不會將其轉換為數字,即使人們可能期望它。如果我們使用以下程式碼段,可能會認為 boilingPoint
是 100
。但是,JavaScript 會將 moreHeat
轉換為字串並連線兩個字串; 結果將是 0100
。
var el = document.getElementById('freezing-point');
var freezingPoint = el.textContent || el.innerText;
var moreHeat = 100;
var boilingPoint = freezingPoint + moreHeat;
我們可以通過明確地將 freezingPoint
轉換為數字來解決這個問題。
var el = document.getElementById('freezing-point');
var freezingPoint = Number(el.textContent || el.innerText);
var boilingPoint = freezingPoint + moreHeat;
在第一行中,我們在儲存之前將 0
(字串)轉換為 0
(數字)。完成新增後,你將獲得預期結果(100
)。