Hoisting is a JavaScript mechanism where variables and function declarations are moved to the top of their scope before code execution.
1) Call invokes the function and allows you to pass in arguments one by one.
2) Apply invokes the function and allows you to pass in arguments as an array.
3) Bind returns a new function, allowing you to pass in a this array and any number of arguments.
Apply vs. Call vs. Bind Examples:
Lazy loading is most useful concept of angular routing and bring down the size of large file. This is done by Lazy loading the files that is required load occasinally. Angular 8 comes with support dynamic imports in our routing configuration.
Return single value
Not cancellable
More readable code with try/catch and async/await