if块中这些代码之间的区别

我在这里得到了预期的结果。

 var modeObj = {};

array.forEach(num => {
    if (!modeObj[num])
        modeObj[num] = 0;
        modeObj[num]++;
});

我在这里得到空结果。

var modeObj = {};

array.forEach(num => {
    if (!modeObj[num]) {
        modeObj[num] = 0;
    }else {
        modeObj[num]++;
    }

});

上面的代码与下面的代码有什么不同?我在if条件中缺少一些概念。