我现在正在做一些调试,问题似乎是两个不兼容的类型(字符串和整数)正在相乘。现在,当它们相乘时,会返回NaN结果。我想以一种模式运行代码,以便当不兼容的类型相乘时,会抛出错误。我尝试在严格模式下运行代码('use strict'
),但这不起作用。我该怎么做?
console.log(2*'a')
> NaN
答案 0 :(得分:4)
抛出你自己的错误,并妥善处理,例如:
try {
if(isNaN( 2*'a')) throw new Error("not a number");
}
catch(err) {
// handle error here
}
或者检查要适当处理的变量的类型,例如
if (typeof(variableName) === "number")) {
console.log('variable is a number');
} else {
throw new Error('variable is NOT a number');
}
答案 1 :(得分:3)
您无法使用此功能更改Javascript的行为。 ES6 spec is specific on how this behavior有效。
如果可能,请尝试重新设计代码,以便首先不能将字符串分配给此变量。如果那是不可能的,那么@yezzz建议手动检查NaN
是下一个最佳选择。