范围

时间:2016-06-19 21:07:32

标签: javascript if-statement global-variables

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

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声明为全局变量。那么它应该在声明之外工作吗?请提前帮助和谢谢。

1 个答案:

答案 0 :(得分:1)

您收到此错误,因为当您尝试访问它时,(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);