1. 语法错误(SyntaxError):代码不符合语法规则,例如拼写错误、缺少括号等。
let a = {1,2,3;
2. 类型错误(TypeError):操作或值的类型不符合预期,例如对一个非函数类型的变量进行调用。
let a = 1;
a.reverse();
// a不是数组,所以无法调用 reverse 方法,会导致 TypeError
3. 引用错误(ReferenceError):尝试访问一个不存在的变量或对象属性。
console.log(a);
// a 没有被定义,会导致 ReferenceError
4. 范围错误(RangeError):当一个值超出有效范围时抛出,例如递归调用层级过深。
function Foo() {
Foo();
}
Foo();
// 会导致 RangeError,因为递归调用层级过深
5. 自定义错误(CustomError):开发者可以自定义错误类型来表示特定的错误情况。
class CustomError extends Error {
constructor(message) {
super(message);
this.name = 'CustomError';
}
}
throw new CustomError('This is a custom error');
// 开发者可以自定义错误类型来表示特定的错误情况