范围内未定义的错误

最后发布: 2016-06-19 21:07:32


问题

为什么在我的控制台中使用以下代码会出现未定义的错误:

var fromDateData;

if(!util.isEmpty(formItem.fromDate)){
        fromDateData = util.tmpl('{year}-{month}-{day}',{      
        day: ("0" + formItem.fromDate.getDate()).slice(-2),
        month: ("0" + (formItem.fromDate.getMonth() + 1)).slice(-2),
        year: formItem.fromDate.getFullYear( )
    }); 
}

  console.log("customData", fromDateData);

但是如果删除if statement ,它将起作用:

var fromDateData;


        fromDateData = util.tmpl('{year}-{month}-{day}',{      
        day: ("0" + formItem.fromDate.getDate()).slice(-2),
        month: ("0" + (formItem.fromDate.getMonth() + 1)).slice(-2),
        year: formItem.fromDate.getFullYear( )
    }); 


  console.log("customData", fromDateData);

我需要使用if statement 我错过了什么,因为我已经将fromDateData声明为全局变量。 所以它应该在声明之外起作用,对吗? 请帮助并提前致谢。

javascript if-statement global-variables
回答

由于正在尝试访问(formItem.fromDate)的值是不确定的,因此您会收到此错误。 您需要在您的if条件中再添加一个检查,如下所示,并确保您的fromDate具有一些要验证的值。 希望这能解决问题。

var fromDateData;

    if( formItem.fromDate != 'undefined' &&  !util.isEmpty(formItem.fromDate)){
            fromDateData = util.tmpl('{year}-{month}-{day}',{      
            day: ("0" + formItem.fromDate.getDate()).slice(-2),
            month: ("0" + (formItem.fromDate.getMonth() + 1)).slice(-2),
            year: formItem.fromDate.getFullYear( )
        }); 
    }

      console.log("customData", fromDateData);