我正在使用声纳法分析我的代码,并遇到以下代码问题:

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的第二个条件吗?

最佳答案

您可以简化以下声明,

if (backtoyear != undefined || backtoyear.length > 0) {




if (backtoyear) {


这更具可读性,效率和可理解性。

请参考此规范ToBoolean

关于javascript - 潜在的null/undefined变量的访问属性-javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55812356/

10-11 12:02