访问潜在空/未定义变量的属性 - JavaScript



我正在使用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

最新更新