JavaScript 作為一門靈活但歷史包袱較重的語言,存在不少容易導致錯誤的“陷阱,本文分享10個JavaScript陷阱。1. 變量提升(Hoisting)
2. 隱式類型轉換
3. 作用域與閉包
4. this
的指向問題
5. 異步與事件循環
6. NaN
的奇怪行為
7. 數組與對象的“陷阱”
8. 浮點數精度問題
9. 自動分號插入(ASI)
陷阱:某些情況下換行會被插入分號,導致意外結果。
function foo() {
return
{ a: 1 }; // 實際返回 undefined,因為分號被插入在 return 后
}
10. 原型鏈污染
現象:修改內置對象原型會影響所有實例。
Array.prototype.push = () => "Hacked!";
const arr = [];
console.log(arr.push(1)); // 輸出 "Hacked!"
如何規避陷阱?
使用 "use strict";
嚴格模式。
優先使用 ===
和 !==
。
用 let
和 const
替代 var
。
理解異步模型(Promise/Async Await)。
使用現代工具(如 TypeScript、ESLint)規避常見錯誤。
JavaScript 的靈活性既是優勢也是風險,深入理解其機制是避免陷阱的關鍵。
該文章在 2025/2/10 14:43:14 編輯過