Skip to main content

JavaScript- Scopes and Closures

Scope

  • The scope is the set of variables, objects, and functions you have access to.

Create Scope 
  • Use functions
Declaring Variables
  •  If you do write operation without declaring variable -> work fine
    • foo = 10; console.log(foo);  -> 10
  • If you do read operation without declaring variable -> doesn't work fine
    • console.log(foo) -> syntax error
Window Object
  • Inbuilt object provided by JavaScript itself
  • Every global variable and functions are part of window object
JavaScript is both compilations and interpreted language
  • Compilation: register variables, method names, arguments in global scope
  • Interpretation: assign values to global scope and execute the code
  • global scope problem: undeclared function inside the variable it goes to global scope
Hoisting
  • It doesn't matter where you declare your variable (In the compilation step it include all variables automatically before the interpretation)
Strict Mode
  • To get strict mode: "use strict"
  • It doesn't allow use variables without declaring it before. 
Closure
  • Function remembers it's declaration scope at every stage when it executes
Callback
  • setTimeout(function,time)
  • The function you want to execute after waiting defined time(milliseconds)
Important Facts
  • JavaScript is not block scoping language: {} doesn't create blocks in JavaScript
  • IIFE: Immediately Invoke Function Expressions
    • Execute anonymous functions directly
  • When executing functions each time new copy of local variables are produce


Comments

Popular posts from this blog

Java- Interview

Here are some popular tips in Java General Question JVM - Java Virtual Machine. Used to execute byte code. Platform dependent (but byte code is platform independent) JRE- Java Run time Environment. It provides run time environment and it's the implementation of JVM. It contains libraries and files that need to execute JVM.   JDK- Java Development Kit. It contains JRE and development tools. Why java doesn't support pointers: It's insecure and complex to understand We can save java file with another name if class is not defined as public Java use camalCase notation for objects naming (ex: firstName) OOP Concepts Related  Aggregation: weak relationship (bike has an indicator) Composition:  strong relationship (bike has an engine) GUI Java GUI - Install Window builder to create GUI using Eclipse IDE Code Related No issues when you write static public void instead of public static void We can execute program without main method : using static bloc...

Core Java Concepts

Java Applications  There are mainly four types of Java applications. Standalone Web  Enterprise  Mobile Java Features  There are several features in Java, but in here listed some important ones Platform independent Object oriented Multi threaded Distributed Robust (automatic garbage collection, exception handling, type checking) Java Security  Java has 3 built-in security components; Classloader: Separate class files packages from imported packages. BytecodeVerifier: check the illegal access to objects Security Manager: check what resources can access the object. C++ vs Java Methods Static - No need to create an object to invoke the static method. Constructor - use to initialize objects Constructor name must same as the class name Constructor has no return type There are two types of constructors Default - no parameter Parameterized If there is no constructor defined in the class, compiler aut...

Object Oriented Programming (OOP)

Object Object is an entity that has state and behavior Class Collection of objects is known as class. There are four main types of OOP concepts Inheritance Object acquire all the properties and behavior of parent object Improve code re-usability Polymorphism One task is performed by different ways Use method overload and override Abstraction Hiding internal details and showing functionality Use abstract class and interfaces Encapsulation Binding code and data into a single unit