Scope
There are two types of scope in JavaScript.
- global scope - anything declared outside of function
- local scope - everything that declared inside function
- module scope - since ES6, everything that declared inside module
JavaScript does not support block level scope inside { }.
x = 1; // global variable
var y = 2; // global
// a and b local variables
function myFunc(a){
var b = a + 34;
}
if(true) { // no new scope
var z = 3;
}
alert(z); // worked, z visible
Global scope
Everything declared outside of function placed to global scope. A variable declared without a var statement is also a global variable.
Local scope
Everything declared inside function. Function parameters are considered as local variables.