JavaScript 是一门广泛使用的编程语言,但随着代码规模增加和复杂度提高,很容易出现各种错误。通过对上千个项目的统计,我们总结了 JavaScript 十大常见错误及其解决方案。
1. Undefined is not a function
这个错误通常是因为试图调用一个未定义的函数而引起的。可能是使用了一个不存在的函数名或者没有正确声明该函数。
// 错误示例 functionName(); // 解决方案 function functionName() { // 函数体 }
2. Cannot read property 'x' of undefined
这个错误通常是因为试图从未定义的变量中读取属性而引起的。最常见的情况是忘记初始化变量或者传递了一个空对象。
// 错误示例 let obj; console.log(obj.x); // 解决方案 let obj = {}; console.log(obj.x);
3. TypeError: Cannot set property 'x' of undefined
这个错误通常是因为试图在未定义的对象上设置属性而引起的。类似于上一个错误,最常见的情况是忘记初始化变量或者传递了一个空对象。
// 错误示例 let obj; obj.x = 10; // 解决方案 let obj = {}; obj.x = 10;
4. Cannot read property 'length' of undefined
这个错误通常是因为试图从未定义的变量中读取属性而引起的。最常见的情况是忘记初始化数组或者传递了一个空数组。
// 错误示例 let arr; console.log(arr.length); // 解决方案 let arr = []; console.log(arr.length);
5. Object is not iterable
这个错误通常是因为试图迭代一个非迭代对象而引起的。在 JavaScript 中,只有数组和类数组对象是可迭代的,普通的对象不是可迭代的。
-- -------------------- ---- ------- -- ---- --- --- - - -- -- -- -- -- --- ---- ---- -- ---- - ------------------ - -- ---- --- --- - --- --- --- ---- ---- -- ---- - ------------------ -
6. Maximum call stack size exceeded
这个错误通常是因为出现了无限递归而引起的。当一个函数递归调用次数过多时,会导致 JavaScript 引擎栈溢出。
-- -------------------- ---- ------- -- ---- -------- ----------- - ------------ - ------------ -- ---- -------- ---------------- - -- ------ - ----- ------- --------------- - --- - -------------
7. ReferenceError: xxx is not defined
这个错误通常是因为使用了未定义的变量或函数而引起的。可能是拼写错误或者没有正确声明该变量或函数。
// 错误示例 console.log(xxx); // 解决方案 let xxx = 10; console.log(xxx);
8. SyntaxError: Unexpected token xxx
这个错误通常是因为代码中出现了意外的符号而引起的。可能是忘记了分号或者使用了不允许的符号。
// 错误示例 let arr = [1, 2, 3] console.log(arr) // 解决方案 let arr = [1, 2, 3]; console.log(arr);
9. RangeError: Maximum call stack size exceeded
这个错误通常是因为栈溢出而引起的,和第 6 个错误类似。但是出现在不同的情况下,比如当递归调用时传
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6487