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

Introduction to JQuery

JQuery Open source JavaScript library. Cross browser compatibility Include the JQuery code inside this function       $(document).ready(function(){             your code is here             }); Creating CSS element : nothing added (body{}) class name : added fullstop (.clzname{}) id : added slash (#idname{}) JQuery Methods  click(): can include actions when after clicking defined button $("button").click mouseover: can include actions when over the mouse on defined element $(button').mouseover hover : can include tow functions when the mouse is over it and not $("img").hover load : execute when complete page is fully loaded  $("img").load JQuery Actions hide() : hide the defined content $("#right").hide() html() : change the html element with defined content $("p").html("<p>My content<p>") text() :  change the content as defined text $("p")

Sorting Algorithms

Bubble Sort Named as sinking sort. Compare each pair of the adjacent items and swap them if they are in the wrong order. Worst case and average case time complexity both O(n^2)  and best case time complexity is O(n).

JavaScript Objects and Prototypes

Create Objects Using function Create Objects without duplication code: use functions Using constructors To indicate a function is a constructor:  append new keyword in front of the function name when executing it Call Property of function object foo.call() = foo() Call can bind different objects and can execute functions __proto__ Copy of prototype object If some property is not in the object itself, it then looks it in the prototype. If it finds it returns the value of that property All the new object instances of function point to same prototype object prototype.constructor: property that points to function  GitHub repo:  https://github.com/kaosadi17/JavaScript/blob/master/objects%26prototypes.js