需要解释简单的代码

时间:2013-11-12 00:42:05

标签: javascript jquery

$('#ID').on('click', function() {
    if(!CommonUtil.compareDateById('startDt','endDt',false, false, true)) {
        return false;           
    }
    var cnt = 0;

    if(!CommonUtil.isNullOrEmptyById('startDt'))     { cnt++; }

if(cnt == 0) {
        CommonUtil.setFocusById('srchWord','<spring:message code="confirm.input" arguments="XXXX"/>');
        return false;

因此,如果我点击#ID,会出现以下逻辑。 而我的问题是什么     var cnt = 0;

if(!CommonUtil.isNullOrEmptyById('startDt')) {
    cnt++;
}

意思?

isNullOrEmptyById的功能如下:

isNullOrEmptyById: function(id) {
    var value = this.getTrimValueById(id);

    return this.isNullOrEmpty(value);
},

但是

是什么
cnt++;

在这里做什么?

2 个答案:

答案 0 :(得分:1)

实际上没必要。因为cnt只有在它的值为0或1时才会递增。相反,你可以摆脱所有这些并使用isNullOrEmptyById函数。

if(!CommonUtil.isNullOrEmptyById('startDt')){
   CommonUtil.setFocusById('srchWord','<spring:message code="confirm.input" arguments="XXXX"/>');
   return false;  
}

答案 1 :(得分:1)

这只是一个if条件块:

if(!CommonUtil.isNullOrEmptyById('startDt')) {
  cnt++;
}

因此,如果CommonUtil.isNullOrEmptyById('startDt')解析为false,则条件会解析为true并执行块中的代码:

cnt++;

The ++ operator递增值。因此,cnt中的任何数值都将增加1。

在代码的整体上下文中,似乎将cnt视为布尔值而不是整数。除非此示例之外还有更多代码,否则可以通过对最后一个条件块使用此条件而不是使用cnt然后检查其值来简化此操作。