Every thing in JavaScript happens inside an Execution Context. Execution Context is the block which operates at back-end (behind the seen) by JavaScript engine. An Execution Context is created each time the program run. Execution Context have Lexical Environment.
Block is also known as Compound Statement.Block is a multiple line statement which is treated as single line in JavaScript. Block Scope: When all variables and functions can be accessible inside the block is known as block scope.
The job of Event Loop is to check whether there is anything inside call stack and if its empty and take function from callback queue(also called Task Queue) to call stack to get executed.