JavaScript 报错大全

常见语法错误
语法错误:语法错误通常是由于代码中的拼写错误、缺少分号、括号不匹配等原因造成的。
var a = 5, b = 10, c = a + b
变量未定义:在访问变量之前,如果没有对其进行定义,将会出现未定义错误。
console.log(x); // Uncaught ReferenceError: x is not defined
类型错误:类型错误通常发生在期望某个值是特定类型,但实际上不是该类型时。
var a = "5"; console.log(a + 1); // NaN
运行时错误
RangeError:当数值超出JavaScript允许的范围时,会抛出RangeError。

var a = Number.MAX_SAFE_INTEGER + 1; // RangeError: Invalid number: 9007199254740992
TypeError:当执行的操作不适用于所提供的值时,会抛出TypeError。
var a = null; console.log(a.length); // TypeError: null is not an object (evaluating 'a.length')
ReferenceError:当尝试访问未定义的变量或对象属性时,会抛出ReferenceError。
console.log(b); // ReferenceError: b is not defined
SyntaxError:当JavaScript代码有语法错误时,会抛出SyntaxError。
var a = 5, b = 10, c = a + b, // SyntaxError: Unexpected token ','
异步错误
Promise Rejection:当Promise被拒绝时,会抛出错误。
new Promise((resolve, reject) => { reject("Promise Rejection"); }).then(() => { console.log("Promise Fulfilled"); }).catch((error) => { console.error(error); // Promise Rejection });Timeout Error:当异步操作超时时,会抛出Timeout Error。

setTimeout(() => { console.log("Timeout Error"); }, 10000); // Timeout Error
FAQs
Q1:如何处理JavaScript中的错误?
A1:在JavaScript中,可以使用try...catch语句来捕获和处理错误,将可能抛出错误的代码放在try块中,如果发生错误,则捕获错误并执行catch块中的代码。
Q2:什么是断言?
A2:断言是JavaScript中的一个调试工具,用于检查特定的条件是否为真,如果条件不为真,则断言会抛出错误,这有助于在开发过程中检测潜在的问题。
assert(2 + 2 === 4, "The sum of 2 and 2 is not equal to 4");

