JavaScript Silent Errors 静默错误
静默错误
JavaScript 可能会静默失败。
静默错误不会导致程序停止运行。程序将继续执行。
静默错误的出现源于历史原因:
JavaScript 的第一个版本没有 catch...try 异常。
注意
静默错误是指不会抛出异常或停止程序执行,但仍会导致逻辑错误、意外行为或容易被忽略的故障的问题。
以下是一些常见的静默错误示例,并附有可供尝试的示例:
示例
赋值,而非比较
let isActive = false;
// 赋值,而非比较
if (isActive = true) {
let result = "Active!";
}
亲自试一试 »解释
等号 (=) 会赋值为 true,而不是检查相等性。
下一行代码会静默运行并打印"Active!",即使 isActive 为 false。
示例
许多失败的数值运算会产生 NaN 值(不会抛出异常)。
JavaScript 不会崩溃。它只会静默地返回 NaN 值并继续执行。
// NaN - 没有错误,只是数据错误
const result = parseInt("abc");
亲自试一试 »示例
JavaScript 对不同运算符的类型强制转换方式不同。
类型强制转换会隐藏错误。程序可以继续运行,但逻辑是错误的。
let result1 = ('5' + '2');
let result2 = ('5' - '2');亲自试一试 »