19. function logString () {
var string = 'a';
console.log(string);
};
logString(); // a
console.log(string);
// Uncaught ReferenceError
// 'string' doesn't exist in global scope
var string;
string = 'a';
function logString () {
console.log(string);
};
logString(); // a
Scope ChainGlobal Vs. Function Scope
20. for (var i=0; i<3; i++) {
setTimeout(function() {
console.log(i);
}, 0);
}
// 3
// 3
// 3
function async (i) {
setTimeout(function() {
console.log(i);
}, 0);
};
for (var i=0; i<3; i++) {
async(i);
}
// 0
// 1
// 2
Calling function creates own scopeClosure is created