理解javascript调用序列和函数范围

时间:2015-07-06 22:07:07

标签: javascript

我试图了解这里发生了什么。我试图更改在函数范围之外定义的变量。我来自Java背景,这组代码让我感到惊讶

var dayIsEmpty = false;

selectByDate.on('end', function(result) {

    if(result.rowCount == 0) {
        console.log('isEmpty');
        dayIsEmpty = true;
    } else {
        console.log('isNotEmpty');
        dayIsEmpty = false;
    }
    console.log('isEmpty?' + dayIsEmpty);
    console.log('Finished Select from UsageByDay');
});
console.log('outside of block isEmpty?' + dayIsEmpty);

我注意到了

outside of block isEmpty? false
在调用函数中定义的任何控制台输出之前调用

。首先......发生了什么?其次,你将如何解决这个问题。

0 个答案:

没有答案