面试题答案
一键面试-
语法错误(SyntaxError):
- 说明:当JavaScript代码不符合语法规则时会抛出该错误,例如遗漏了括号、引号不匹配等。这类错误在代码解析阶段就会被发现,
try - catch
无法捕获,因为代码根本无法执行到try
块。 - 示例:
var a = 1 +
,这里1 +
后面缺少操作数,语法错误。
- 说明:当JavaScript代码不符合语法规则时会抛出该错误,例如遗漏了括号、引号不匹配等。这类错误在代码解析阶段就会被发现,
-
引用错误(ReferenceError):
- 说明:当使用一个未声明的变量时会抛出此错误。在
try - catch
块中捕获后,可以根据具体情况进行处理,比如给变量赋值或记录错误日志。 - 捕获处理示例:
- 说明:当使用一个未声明的变量时会抛出此错误。在
try {
console.log(undefinedVariable);
} catch (error) {
if (error instanceof ReferenceError) {
console.error('引用错误:', error.message);
}
}
- 类型错误(TypeError):
- 说明:当操作或函数尝试以不正确的类型使用值时抛出,例如对非函数类型的值调用函数,或者访问对象不存在的属性。捕获后可针对具体类型错误情况进行提示或处理。
- 捕获处理示例:
try {
var num = 123;
num();// num不是函数,会抛出TypeError
} catch (error) {
if (error instanceof TypeError) {
console.error('类型错误:', error.message);
}
}
- 范围错误(RangeError):
- 说明:当一个值超出了有效范围时抛出,比如数组长度设置为负数,或者
Number.toFixed()
方法的参数超出范围等。捕获后可调整相关值到合法范围。 - 捕获处理示例:
- 说明:当一个值超出了有效范围时抛出,比如数组长度设置为负数,或者
try {
var arr = new Array(-1);
} catch (error) {
if (error instanceof RangeError) {
console.error('范围错误:', error.message);
}
}