js hoisting
/*Hoisting is JavaScript's default behavior of moving
all declarations to the top of the current scope (script or function).
Be carefull that only declaration gets hoisted NOT the initialitations*/
var x = 5;
alert("x is = "+x+". y is = "+y);//result => x is = 5. y is = undefined.
var y = 7;
/*
note that the code doesn't produce the error "y is not defined" like
it would if we would omit y. It executes but not in the way you would want.
*/