0

我是 Javascript 的完全新手,并且尝试了布尔表达式的所有可能组合,我留下了以下代码。为什么以下 JS 布尔逻辑对于除有效日期选择=真和通过日期选择=假以外的所有内容都失败

            // initialisation  
            var effectiveDateSelected = new Boolean(false);
        var throughDateSelected = new Boolean(false);  

            // values read in from web page
            effectiveDateSelected = ...          
            throughDateSelected = ...

            // the logical expression 
        if ((effectiveDateSelected) && !(throughDateSelected)) {
            reportNum = 1;
            alert("1 reportNum=" + reportNum);
        }

        if (!(effectedDateSelected)  && (throughDateSelected)) { 
                            reportNum = 2;
            alert("2 reportNum=" + reportNum);
        }

        if (((effectedDateSelected)  && (throughDateSelected)) || 
            (!(effectedDateSelected)  && !(throughDateSelected))) {
            reportNum = 3;
            alert("3 reportNum=" + reportNum);
        }  
4

1 回答 1

1

new Boolean()false总是真实的,因为它是一个对象,你想直接使用布尔原语true

var condition = false;

您可以在将布尔对象转换为原始对象时看到这一点:

Boolean( new Boolean( false ) ) //true
于 2012-11-28T14:21:11.703 回答