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

Hibernate

Hibernate is an ORM (Object Relational Mapping) tool which is primarily used in the data layer. Object Relational Mappings Problems There are several problems can occur when you are trying to save objects in the database from the scratch without using Hibernate. Mapping member variables to columns Mapping relationships Handling data types Managing changes to an object Set Up the Development Environment  Following steps are briefly pointed out how to set up Hibernate on your local machine. Download the hibernate jar files Create a project in Eclipse Right click on the project name and go to properties Navigate to libraries tab Add library and import jar files (lib-> JPA/required) Add Postgres JDBC driver as jar file Configurations After you set up the Hibernate you have to create hiberante.cfg.xml file and do some configurations like setup database details, entity class, etc. Dialect: Define what kind of language should use to talk...

Introduction To JavaScript

JavaScript Language has following characteristics: Lightweight: Small memory footprint, easy to implement Interpreted: No compilation, Instructions executed only Object Oriented: Modeled around objects First-class functions: Functions used as variables and parameters Scripting language: Writing instructions for runtime environment JavaScript is used for  Client side web development Frameworks: JQuery, AngularJs, React, EServer-side Server-side web development Frameworks: NodeJS, Express Variable declaration and definition Declaration: Give a name to a variable Definition: Assign a value to the variable Equal operations  =: assigning value to a variable (a=30) ==: check the values (doesn't consider types) ===: check the values and types Functions:  no overloading functions are objects functional expression : assign function to variable anonymous function: function with no name Array methods push(value): value is appe...

Model-View-Controller (MVC)

MVC(Model-View-Controller) is a software design pattern.It divided your applications into three components Model: Contain business rules and application Data View: Presentation layer (user interface) Controller: Handles the communication between view and model  Objectives of MVC Promote code usability Implement separation of concerns  Separate user interface and software logic Web Frameworks That Use MVC There are several web frameworks that use MVC design pattern.  Ruby On Rails (Ruby) Angular (JS) Django (Python) Express (JS) Flask (Python) Codeigniter (PHP) Simple UseCase for MVC In this use case scenario, Browser sends information that needs to create Employee Object, and Controller save that information in Model and Update the Employee View. Following Image shows the class diagram for above Scenario. Implementation:  https://github.com/kaosadi17/MVC