Hack-Reactor part 3: Scope
part 3: Scope -lexical scope -memory scope (closure) -
by ndw5015
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
JavaScript
$( document ).ready(function() {
/* var func = function(){
var local = true;
}
console.log(local); //local is not defined */
/* var globalScope = 'hello there';
var func = function(){
console.log(globalScope);
globalScope = 'hello in here';
console.log(globalScope);
}
func(); */
//second example
//child parent scope
/* var x = 10;
var outerFunc = function(){
var innerFunc = function(){
var y = 15;
console.log(x);
}
innerFunc();
console.log(y);
}
outerFunc(); */
//third example
//presedence
var g = 'global';
function go(){
var l = 'local';
var g = 'in here';
//console.log(g + 'inside go');
}
go();
//console.log(g + 'inside go');
//example four
//block scope
var inBlock = true;
for(var i=0; i<5; i++){
var inBlock = false;//do not do
}
//console.log('block scope exists:', inBlock);
//ES6
var inBlock2 = true;
for(var x=0; x<5; x++){
let inBlock2 = false;//do not do resign
}
console.log('block scope exists:', inBlock2);
});