SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
JAVASCRIPT

Aditya Gaur   Mentor: Apurba Nath
Do we really need to learn
Javascript?
YES!! But why?
   Language of web browser.
   Its not “some other language”.
   The most misunderstood language
Javascript
   developed by Brendan Eich of Netscape
    under the name Mocha
   Renamed to livescript.
   Finally to javascript
   Sometimes also called ECMAscript
   first appeared in that Navigator 2.0 browser
Prototypal Language
   Javascript is classless object oriented
    language.
     Whaaaat?
     How can we think of OOPS without class?
Classical vs Prototypal

                 Java       Javascript

     Classical          Prototypal

     Classes            Functions

     Constructors       Functions

     Methods            Functions
Object creation

   Using Object literal

   var newObject ={
   first: 10,
   second: "aValue"
   };
   alert(newObject.first)
   Using constructor function

   var newClass = function(){
   this.first= 10;
   this.second="aValue";
   };
   var newObject = new newClass();
   alert(newObject.first);
What's the difference?

   The constructor maintain a link back to the
    function that constructed them.
   This is important when we are using the prototype
    feature.
           var newClass = function(){
                  this.first= 10;
                  this.second="aValue";
           };
           var newObject = new newClass();
           alert(newObject.constructor);
Why do we need classes?

   Code reuse
   Making user defined types
Javascript object prototype

   It is javascript’s way of sharing implementation
    across similar objects
   No Classes
   All objects are created by adding properties and
    methods to an empty object or by cloning an
    existing one.
   Prototype-based inheritance - an existing
    object is used as a template to build other objects
How does it work?

   Prototypes are implemented in javascript using
    the prototype property of constructor functions.
   The prototype property is basically a template for
    the objects created by the constructor.
How does it work?

var newClass = function(){
this.first= 10;
this.second="aValue";
};

newClass.prototype.one = 1;
var newObject = new newClass();
newObject.constructor.prototype.two = 2;
alert(newObject.constructor.prototype.one); //1
alert(newObject.constructor.prototype.two); //2

var anotherObject = new newClass();
alert(anotherObject.constructor.prototype.two); //2
How does it work?
function Pet(name, species, hello)
{
  this.name = name;
  this.species = species;
  this.hello = hello;
}

Pet.prototype.sayHello = function()
{
   alert(this.hello);
}

var rufus = new Pet("Rufus", "cat", "miaow");
rufus.sayHello();
Inheritance

   Inheritence is achieved via Prototype Chaining
   How to define a prototype object?
     Just define the prototype of the derived object
      to be equal to the prototype object
Inheritance
function Pet()                         OUTPUT: Default Name
{                                              meow
  this.name = "Default Name";
   this.sound = "Default Sound";
}
Pet.prototype.makeSound= function(){
   alert(this.sound);
}
Pet.prototype.getName = function(){
   alert(this.name);
}
var aPet = new Pet();
function Cat(){
   this.sound = "meow";
}
Cat.prototype = aPet;
var aCat = new Cat();
aCat.getName();
aCat.makeSound();
Prototype Chaining
Object.prototype.inObj = 1;
function A()
{
   this.inA = 2;
}
A.prototype.inAProto = 3;
function B()
{
   this.inB = 4;
}
B.prototype = new A;
B.prototype.constructor = B;
B.prototype.inBProto = 5;
 x = new B;
document.write(x.inObj + ', ' + x.inA + ', ' + x.inAProto + ', ' + x.inB
+ ', ' + x.inBProto);
The “new”
   We need the keyword “new” to carry out
    inheritence
   But it has a drawback:

    var func = function(){         OUTPUT : Window.object
      alert(this);                          object.object
    }
    var aVar = func();
    var anotherVar = new func();



       Also it gives us an impression of Class based
        language
The “new”
   S o we can do the following:
    Method 1                       Method 2
    function func(){               function func(){
       this.name = "foo";             if (!(this instanceof func) )
    }                                   return new func();
    function newObject(obj){           this.name = "foo";
       return new obj();           }
    }                              var anObj = func();
    var anObj = newObject(func);   alert(anObj.name);
    alert(anObj.name);
Back up slides
Dynamically Typed
   Type: metadata about a chunk of memory
    that classifies the kind of data stored there.
   Type declaration is not necessary.
        var aVar = 10; //type: Number
        var anotherVar = true; // type: Boolean


   Variables in JavaScript are typed, but that type
    is determined internally. In the example, var
    aVar will be type Number and var
    anotherVar will be type Boolean. 
Weekly Typed
   Variables are not of a specific data type.
            var aVar = 10; // Number
            aVar = true; // Boolean
            aVar = “This is a string!” // String
Closures
   a closure is the local variables for a function -
    kept alive after the function has returned, or
   a closure is a stack-frame which is not
    deallocated when the function returns.
Non C losure (E xample)
                            void sayNumber(){
                                int num = 10;
                                printf(“%d”,num);
                                return;
                            }
                            sayNumber();

When the function “sayNumber” is called, it creates a stack frame for itself and the
variable “num” will exist in the stack.
As soon as the function returns the variable “num” ceases to exist.
C losure (E xample)
  function sayName(name) {                               Ouput: I am foo
      var phrase = "I am" + name;
      var sayString = function() {
          alert(phrase);
      };
      return sayString;
  }
  var say = sayName(“foo");
  say();


In this case too the stack frames are created but here the inner functions have
access to the outer function’s variable even after the outer function has returned.
C losure (More E xample)
    function sayName(name) {                            Ouput: My name is foo
        var phrase = "I am" + name;
        var sayString = function() {
            alert(phrase);
        };
        phrase = "My name is" + name;
        return sayString;
    }
    var say = sayName(“foo");
    say();  

This example shows that the variables are not copied. Their reference is stored.

Contenu connexe

Tendances

Basic JavaScript Tutorial
Basic JavaScript TutorialBasic JavaScript Tutorial
Basic JavaScript TutorialDHTMLExtreme
 
Javascript - Tutorial
Javascript - TutorialJavascript - Tutorial
Javascript - Tutorialadelaticleanu
 
JavaScript Programming
JavaScript ProgrammingJavaScript Programming
JavaScript ProgrammingSehwan Noh
 
JavaScript Fundamentals & JQuery
JavaScript Fundamentals & JQueryJavaScript Fundamentals & JQuery
JavaScript Fundamentals & JQueryJamshid Hashimi
 
Complete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScriptComplete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScriptEPAM Systems
 
Introduction to web programming with JavaScript
Introduction to web programming with JavaScriptIntroduction to web programming with JavaScript
Introduction to web programming with JavaScriptT11 Sessions
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScriptAndres Baravalle
 
JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...
JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...
JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...Doug Jones
 

Tendances (20)

Java script -23jan2015
Java script -23jan2015Java script -23jan2015
Java script -23jan2015
 
Basic JavaScript Tutorial
Basic JavaScript TutorialBasic JavaScript Tutorial
Basic JavaScript Tutorial
 
Javascript - Tutorial
Javascript - TutorialJavascript - Tutorial
Javascript - Tutorial
 
Javascript
JavascriptJavascript
Javascript
 
Java script
Java scriptJava script
Java script
 
JavaScript Programming
JavaScript ProgrammingJavaScript Programming
JavaScript Programming
 
Java script
Java scriptJava script
Java script
 
Java script
Java scriptJava script
Java script
 
Javascript
JavascriptJavascript
Javascript
 
Javascript basics
Javascript basicsJavascript basics
Javascript basics
 
Java Script ppt
Java Script pptJava Script ppt
Java Script ppt
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
JavaScript Fundamentals & JQuery
JavaScript Fundamentals & JQueryJavaScript Fundamentals & JQuery
JavaScript Fundamentals & JQuery
 
Java script basics
Java script basicsJava script basics
Java script basics
 
Introduction to JavaScript Programming
Introduction to JavaScript ProgrammingIntroduction to JavaScript Programming
Introduction to JavaScript Programming
 
Complete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScriptComplete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScript
 
Introduction to web programming with JavaScript
Introduction to web programming with JavaScriptIntroduction to web programming with JavaScript
Introduction to web programming with JavaScript
 
Javascript functions
Javascript functionsJavascript functions
Javascript functions
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
 
JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...
JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...
JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...
 

En vedette

En vedette (7)

03 HTML/CSS/JA Conceptos mínimos
03 HTML/CSS/JA Conceptos mínimos03 HTML/CSS/JA Conceptos mínimos
03 HTML/CSS/JA Conceptos mínimos
 
Java script
 Java script Java script
Java script
 
Javascript Basics
Javascript BasicsJavascript Basics
Javascript Basics
 
Curso FPE Diseño Web. Módulo 2. El HTML
Curso FPE Diseño Web. Módulo 2. El HTMLCurso FPE Diseño Web. Módulo 2. El HTML
Curso FPE Diseño Web. Módulo 2. El HTML
 
Introduction to Java Script
Introduction to Java ScriptIntroduction to Java Script
Introduction to Java Script
 
HTML/CSS/java Script/Jquery
HTML/CSS/java Script/JqueryHTML/CSS/java Script/Jquery
HTML/CSS/java Script/Jquery
 
Javascript
JavascriptJavascript
Javascript
 

Similaire à Why Learn JavaScript

Journey of a C# developer into Javascript
Journey of a C# developer into JavascriptJourney of a C# developer into Javascript
Journey of a C# developer into JavascriptMassimo Franciosa
 
JavaScript (without DOM)
JavaScript (without DOM)JavaScript (without DOM)
JavaScript (without DOM)Piyush Katariya
 
JavaScript(Es5) Interview Questions & Answers
JavaScript(Es5)  Interview Questions & AnswersJavaScript(Es5)  Interview Questions & Answers
JavaScript(Es5) Interview Questions & AnswersRatnala Charan kumar
 
Ian 20150116 java script oop
Ian 20150116 java script oopIan 20150116 java script oop
Ian 20150116 java script oopLearningTech
 
The JavaScript Programming Primer
The JavaScript  Programming PrimerThe JavaScript  Programming Primer
The JavaScript Programming PrimerMike Wilcox
 
JavaScript Execution Context
JavaScript Execution ContextJavaScript Execution Context
JavaScript Execution ContextJuan Medina
 
Advanced javascript
Advanced javascriptAdvanced javascript
Advanced javascriptDoeun KOCH
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript BasicsMindfire Solutions
 
JavaScript Closures for Dummies & JavaScript prototype, closures and OOP.
JavaScript Closures for Dummies & JavaScript prototype, closures and OOP.JavaScript Closures for Dummies & JavaScript prototype, closures and OOP.
JavaScript Closures for Dummies & JavaScript prototype, closures and OOP.Jin-Hwa Kim
 
Intro to scala
Intro to scalaIntro to scala
Intro to scalaJoe Zulli
 
Object Oriented JavaScript
Object Oriented JavaScriptObject Oriented JavaScript
Object Oriented JavaScriptDonald Sipe
 
An introduction to javascript
An introduction to javascriptAn introduction to javascript
An introduction to javascriptMD Sayem Ahmed
 
The many facets of code reuse in JavaScript
The many facets of code reuse in JavaScriptThe many facets of code reuse in JavaScript
The many facets of code reuse in JavaScriptLeonardo Borges
 
Javascript: the important bits
Javascript: the important bitsJavascript: the important bits
Javascript: the important bitsChris Saylor
 

Similaire à Why Learn JavaScript (20)

Journey of a C# developer into Javascript
Journey of a C# developer into JavascriptJourney of a C# developer into Javascript
Journey of a C# developer into Javascript
 
JavaScript (without DOM)
JavaScript (without DOM)JavaScript (without DOM)
JavaScript (without DOM)
 
Let's JavaScript
Let's JavaScriptLet's JavaScript
Let's JavaScript
 
JavaScript(Es5) Interview Questions & Answers
JavaScript(Es5)  Interview Questions & AnswersJavaScript(Es5)  Interview Questions & Answers
JavaScript(Es5) Interview Questions & Answers
 
Ian 20150116 java script oop
Ian 20150116 java script oopIan 20150116 java script oop
Ian 20150116 java script oop
 
The JavaScript Programming Primer
The JavaScript  Programming PrimerThe JavaScript  Programming Primer
The JavaScript Programming Primer
 
JavaScript Execution Context
JavaScript Execution ContextJavaScript Execution Context
JavaScript Execution Context
 
Javascript tid-bits
Javascript tid-bitsJavascript tid-bits
Javascript tid-bits
 
Advanced javascript
Advanced javascriptAdvanced javascript
Advanced javascript
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript Basics
 
Oojs 1.1
Oojs 1.1Oojs 1.1
Oojs 1.1
 
Prototype
PrototypePrototype
Prototype
 
4front en
4front en4front en
4front en
 
JavaScript Closures for Dummies & JavaScript prototype, closures and OOP.
JavaScript Closures for Dummies & JavaScript prototype, closures and OOP.JavaScript Closures for Dummies & JavaScript prototype, closures and OOP.
JavaScript Closures for Dummies & JavaScript prototype, closures and OOP.
 
Intro to scala
Intro to scalaIntro to scala
Intro to scala
 
Object Oriented JavaScript
Object Oriented JavaScriptObject Oriented JavaScript
Object Oriented JavaScript
 
An introduction to javascript
An introduction to javascriptAn introduction to javascript
An introduction to javascript
 
The many facets of code reuse in JavaScript
The many facets of code reuse in JavaScriptThe many facets of code reuse in JavaScript
The many facets of code reuse in JavaScript
 
oojs
oojsoojs
oojs
 
Javascript: the important bits
Javascript: the important bitsJavascript: the important bits
Javascript: the important bits
 

Dernier

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Dernier (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Why Learn JavaScript

  • 1. JAVASCRIPT Aditya Gaur Mentor: Apurba Nath
  • 2. Do we really need to learn Javascript?
  • 3. YES!! But why?  Language of web browser.  Its not “some other language”.  The most misunderstood language
  • 4. Javascript  developed by Brendan Eich of Netscape under the name Mocha  Renamed to livescript.  Finally to javascript  Sometimes also called ECMAscript  first appeared in that Navigator 2.0 browser
  • 5. Prototypal Language  Javascript is classless object oriented language.  Whaaaat?  How can we think of OOPS without class?
  • 6. Classical vs Prototypal Java Javascript Classical Prototypal Classes Functions Constructors Functions Methods Functions
  • 7. Object creation Using Object literal var newObject ={ first: 10, second: "aValue" }; alert(newObject.first) Using constructor function var newClass = function(){ this.first= 10; this.second="aValue"; }; var newObject = new newClass(); alert(newObject.first);
  • 8. What's the difference?  The constructor maintain a link back to the function that constructed them.  This is important when we are using the prototype feature. var newClass = function(){ this.first= 10; this.second="aValue"; }; var newObject = new newClass(); alert(newObject.constructor);
  • 9. Why do we need classes?  Code reuse  Making user defined types
  • 10. Javascript object prototype  It is javascript’s way of sharing implementation across similar objects  No Classes  All objects are created by adding properties and methods to an empty object or by cloning an existing one.  Prototype-based inheritance - an existing object is used as a template to build other objects
  • 11. How does it work?  Prototypes are implemented in javascript using the prototype property of constructor functions.  The prototype property is basically a template for the objects created by the constructor.
  • 12. How does it work? var newClass = function(){ this.first= 10; this.second="aValue"; }; newClass.prototype.one = 1; var newObject = new newClass(); newObject.constructor.prototype.two = 2; alert(newObject.constructor.prototype.one); //1 alert(newObject.constructor.prototype.two); //2 var anotherObject = new newClass(); alert(anotherObject.constructor.prototype.two); //2
  • 13. How does it work? function Pet(name, species, hello) { this.name = name; this.species = species; this.hello = hello; } Pet.prototype.sayHello = function() { alert(this.hello); } var rufus = new Pet("Rufus", "cat", "miaow"); rufus.sayHello();
  • 14. Inheritance  Inheritence is achieved via Prototype Chaining  How to define a prototype object?  Just define the prototype of the derived object to be equal to the prototype object
  • 15. Inheritance function Pet() OUTPUT: Default Name { meow this.name = "Default Name"; this.sound = "Default Sound"; } Pet.prototype.makeSound= function(){ alert(this.sound); } Pet.prototype.getName = function(){ alert(this.name); } var aPet = new Pet(); function Cat(){ this.sound = "meow"; } Cat.prototype = aPet; var aCat = new Cat(); aCat.getName(); aCat.makeSound();
  • 16. Prototype Chaining Object.prototype.inObj = 1; function A() { this.inA = 2; } A.prototype.inAProto = 3; function B() { this.inB = 4; } B.prototype = new A; B.prototype.constructor = B; B.prototype.inBProto = 5; x = new B; document.write(x.inObj + ', ' + x.inA + ', ' + x.inAProto + ', ' + x.inB + ', ' + x.inBProto);
  • 17. The “new”  We need the keyword “new” to carry out inheritence  But it has a drawback: var func = function(){ OUTPUT : Window.object alert(this); object.object } var aVar = func(); var anotherVar = new func();  Also it gives us an impression of Class based language
  • 18. The “new”  S o we can do the following: Method 1 Method 2 function func(){ function func(){ this.name = "foo"; if (!(this instanceof func) ) } return new func(); function newObject(obj){ this.name = "foo"; return new obj(); } } var anObj = func(); var anObj = newObject(func); alert(anObj.name); alert(anObj.name);
  • 20. Dynamically Typed  Type: metadata about a chunk of memory that classifies the kind of data stored there.  Type declaration is not necessary. var aVar = 10; //type: Number var anotherVar = true; // type: Boolean  Variables in JavaScript are typed, but that type is determined internally. In the example, var aVar will be type Number and var anotherVar will be type Boolean. 
  • 21. Weekly Typed  Variables are not of a specific data type. var aVar = 10; // Number aVar = true; // Boolean aVar = “This is a string!” // String
  • 22. Closures  a closure is the local variables for a function - kept alive after the function has returned, or  a closure is a stack-frame which is not deallocated when the function returns.
  • 23. Non C losure (E xample) void sayNumber(){ int num = 10; printf(“%d”,num); return; } sayNumber(); When the function “sayNumber” is called, it creates a stack frame for itself and the variable “num” will exist in the stack. As soon as the function returns the variable “num” ceases to exist.
  • 24. C losure (E xample) function sayName(name) { Ouput: I am foo     var phrase = "I am" + name;     var sayString = function() {         alert(phrase);     };     return sayString; } var say = sayName(“foo"); say(); In this case too the stack frames are created but here the inner functions have access to the outer function’s variable even after the outer function has returned.
  • 25. C losure (More E xample)   function sayName(name) { Ouput: My name is foo       var phrase = "I am" + name;       var sayString = function() {           alert(phrase);       };       phrase = "My name is" + name;       return sayString;   }   var say = sayName(“foo");   say();   This example shows that the variables are not copied. Their reference is stored.