js function hoisting code example

Example 1: 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.
*/

Example 2: javascript function declaration

//Four ways to declare a function
function add(a, b) {
  return a + b;
}

var add = function(a, b) {
  return a + b;
}

var add = (a, b) => {
  return a + b;
}

var add = (a, b) => a + b;

Example 3: function hoisting in js

console.log(functionBelow("Hello"));
var functionBelow = function(greet) {
   return `${greet} world`;
}
console.log(functionBelow("Hi"));