导致不兼容类型的乘法在ES6中引发错误

时间:2018-05-22 21:39:34

标签: javascript ecmascript-6

我现在正在做一些调试,问题似乎是两个不兼容的类型(字符串和整数)正在相乘。现在,当它们相乘时,会返回NaN结果。我想以一种模式运行代码,以便当不兼容的类型相乘时,会抛出错误。我尝试在严格模式下运行代码('use strict'),但这不起作用。我该怎么做?

console.log(2*'a')
> NaN

2 个答案:

答案 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是下一个最佳选择。