我正在使用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/未定义,因此不会有任何属性。
我应该从 if 条件中删除 OR 的第二个 HAS 吗?
您可以简化以下语句,
if (backtoyear != undefined || backtoyear.length > 0) {
自
if (backtoyear) {
这更具可读性、效率和可理解性。
参考此规范 ToBoolean