# JavaScript如何實現兩變量相加
在JavaScript中,變量相加是最基礎卻容易踩坑的操作。本文將詳細介紹5種實現方式,并深入分析其中的類型轉換機制和常見陷阱。
## 一、基礎算術加法
```javascript
let a = 5;
let b = 3;
let sum = a + b; // 輸出8
這是最直接的數值相加方式,適用于: - 兩個Number類型變量 - 明確的數值運算場景
let x = "10";
let y = 5;
let result = x + y; // 輸出"105"
當操作數包含字符串時:
1. 非字符串變量會被隱式轉換為字符串
2. 執行字符串拼接而非數學加法
3. 使用Number()
或parseInt()
可強制轉換
function strictAdd(a, b) {
if (typeof a === 'number' && typeof b === 'number') {
return a + b;
}
throw new Error('Both arguments must be numbers');
}
推薦在需要類型安全的場景使用: - 函數參數校驗 - 避免意外的隱式轉換 - 配合TypeScript類型注解更佳
const big1 = 9007199254740991n;
const big2 = 1n;
console.log(big1 + big2); // 9007199254740992n
注意:
- 常規Number有精度限制(2^53-1)
- BigInt類型需要加n
后綴
- 不能與Number直接混合運算
class Vector {
constructor(x, y) {
this.x = x;
this.y = y;
}
add(other) {
return new Vector(this.x + other.x, this.y + other.y);
}
}
面向對象編程中:
- 可重載+
運算符(通過valueOf()
)
- 推薦實現明確的add方法
- 適合自定義數據結構的運算
浮點數精度問題
console.log(0.1 + 0.2); // 0.30000000000000004
// 解決方案:
const sum = (0.1 * 10 + 0.2 * 10) / 10;
null/undefined處理
console.log(null + 5); // 5 (null→0)
console.log(undefined + 5); // NaN
最佳實踐建議
===
嚴格相等判斷掌握這些技巧后,你將能正確處理各種加法場景,避免90%的類型相關bug。 “`
文章包含: - 5種具體實現方案 - 3個常見問題分析 - 代碼示例和注釋 - 實際應用建議 - 類型轉換原理說明
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。