Javascript Null记录错误地触发Else语句

Javascript Null记录错误地触发Else语句,javascript,datetime,if-statement,Javascript,Datetime,If Statement,我有一个函数,可以为我的两个数据库属性创建一个slug,但我希望它仅在记录中存在数据时,才能同时返回两个值的slug。为了创建这个逻辑,我决定创建和if/else语句,查找两个字段是否都有空值,然后在语句为true或false时进行渲染。我有一些记录的值为空,但它们仍然会触发“Statement false”console.log,我不明白为什么。当我控制台自己记录变量时,这些记录将为null。我的陈述不起作用的原因是什么 控制台日志: null //startDateValue no valu

我有一个函数,可以为我的两个数据库属性创建一个slug,但我希望它仅在记录中存在数据时,才能同时返回两个值的slug。为了创建这个逻辑,我决定创建和if/else语句,查找两个字段是否都有空值,然后在语句为true或false时进行渲染。我有一些记录的值为空,但它们仍然会触发“Statement false”console.log,我不明白为什么。当我控制台自己记录变量时,这些记录将为null。我的陈述不起作用的原因是什么

控制台日志:

null //startDateValue no value
null //endDateValue no value
Statement false //Wrong conclusion. "Statement true" should have been triggered
Sat Mar 05 2016 19:00:00 GMT-0500 (EST)
Thu Apr 07 2016 20:00:00 GMT-0400 (EDT)
Statement false //Correct conclusion. Both values are present
功能:

dataDateRangeSlug: function(){
            var startDateValue = this.getDataValue('dataDateStart'); 
            var startDate = new Date(startDateValue); 
            var momentStartDate = moment(startDate).utc().format("MM/DD/YYYY");

            var endDateValue = this.getDataValue('dataDateEnd');
            var endDate = new Date(endDateValue);
            var momentEndDate = moment(endDate).utc().format("MM/DD/YYYY");

            console.log(startDateValue);
            console.log(endDateValue);

            if (startDateValue && endDateValue == null){
                console.log("Statement true");
            } else {
                console.log("Statement false");
                return momentStartDate + ' - ' + momentEndDate;
            }           
        },
当设置startDateValue且endDateValue为空时,将验证此条件

您可以通过以下方式进行更正:

if (startDateValue == null && endDateValue == null){
    console.log("Statement true");
}
&&
是介于两个条件之间的
,您不能使用它检查两个变量是否为空

if (startDateValue == null && endDateValue == null){
    console.log("Statement true");
}