【发布时间】:2019-09-12 16:57:03
【问题描述】:
我正在使用 sonarqube 分析我的代码,但遇到以下代码的问题:
var backtoyear = $('#backtoyear').val();
if (backtoyear != undefined || backtoyear.length > 0) {
var currentyear = (new Date()).getFullYear();
var numberofyears = currentyear - backtoyear;
}
backtoyear.length 变量导致“TypeError 可以抛出,因为“backtoyear”在此处可能为 null 或未定义。”因为它可能是 null/undefined,因此不会有任何属性。
我应该从 if 条件中删除 OR 的第二个吗?
【问题讨论】:
-
我怀疑
||应该是&&;如果backtoyear实际上是undefined,则不应尝试第二个表达式。 -
要检测
undefined,您应该使用typeof,如下所示if (typeof backtoyear !== undefined || backtoyear.length > 0)
标签: javascript jquery sonarqube