SlideShare a Scribd company logo
Javascript




    Introduction

      by Amit Tyagi
What Is JavaScript?

   Executes in Host Environment ( mostly
    Browser).
   Interpreted language.
   Major use cases are:
    a.          making web pages dynamic (animations,
         RICH UI)
    b.         form validation
    c.         background communication with server
         (AJAX) etc.
    d.   ….
History

   Initially LiveScript from Netscape.
   JScript from Microsoft.
   ECMA introduced ECMAScript for
    standardized Scripting language.
   Current Version is 5.1 of ECMA-262.
The Core (ECMAScript)

    ECMA-262 describes it like this:
    “ECMAScript can provide core scripting capabilities
    for a variety of host environments, and therefore the
    core scripting language is specified...apart from any
    particular host environment.”
                         ECMAScript
                                |
                ----------------------------------------
                |                 |                   |
            JavaScript              Actionscript        ScriptEase
The Document Object Model (DOM)

   The Document Object Model (DOM) is an
    application programming interface (API) for
    HTML as well as XML.
DOM

<html>
   <head>
          <title>Sample Page</
   title>
   </head>
   <body>
          <p>Hello World!</p>
   </body>
</html>
The Browser Object Model (BOM)

   BOM deals with the browser window and
    frames.
   All function and properties starting inside
    window object.
   Internet Explorer extends the BOM to include
    the ActiveXObject class, which can be used
    to instantiate ActiveX objects through
    JavaScript.
Browser Object Model (BOM)
DOM and JS World
How to include JS in a web page

Inside <script> tags
       <script>
              var a = 10;
              alert(a);
       </script>
Within external file
       <script src=“page.js“
type=“text/javascript” ></script>
Javascript Basics
Syntax

   Mostly like C and java.
   Everything is case-sensitive.
   Variables are loosely typed.
   End-of-line semicolons are optional.
   Comments are the same as in Java, C, and
    Perl.
Variables

   var test = "hi“, test2, $number;
   Variable declaration is optional.
Keywords

break      else         new      var
case       finally      return   void
catch      for          switch   while
continue   function     this     with
default    if           throw
delete     in           try
do         instanceof   typeof
Reserved Words

abstract   enum         int         short
boolean    export       interface   static
byte       extends      long        super
char       final        native      synchronized
class      float        package     throws
const      goto         private     transient
debugger   implements   protected   volatile
double     import       public
Statements

   The if statement
     –    if (condition) statement1 else statement2
   do-while
     –    do { statements } while (condition )
   While
     –    while (condition) { statements}
   for
     –    for (initialization; condition; post-loop-expression)
           { statements}
   for-in
           for (property in expression) {statements}
Data types

   Primitive values

   Reference values
Primitive values

   undefined
   null
   boolean
   number
   string

Use typeof keyword to check type of variable.
Reference Types

   Classes or Object
   The Object class – similar to java.lang.Object
        var car = new Object();

Or
        var myClass = function(){};
        var myObject = new myClass();

Or JSON way
     var myObject = {};
Memory Allocation
Classes and objects in
javascript

   No class keyword available, instead
    constructor function works as class definition.
   Classes and objects are dynamic, can be
    altered at runtime.
Builtin Objects


Object        Function    Array        String
Boolean       Number      Date         RegExp
Error         EvalError   RangeError   ReferenceError
SyntaxError   TypeError   URIError
Function defination

     function showInfo(a) {
          alert(a);
     }

     var showInfo = function(a)
{ alert(a);}

     var showInfo = new Function(“a”,
“alert(a)”);
Functions ( contd.)

   Functions are also object, in fact everything
    is an object in JavaScript
   Functions can return any data type,
    ‘undefined’ if none specified.
Functions scope

By default in window scope
this points to current object’s scope, defaults
to window

Can be altered using call and apply method
     func.call(any_scope, [arg1,
arg2, ..]);
     func.apply(any_scope, arg1,
arg2,..);
Using function as Class

var Policy = function(name) {
                  this.policyName = name;
            }
var pol1 = new Policy(“AccessPolicy”);
var pol2 = new Policy(“AuthenticationPolicy”);

console.log(pol1.policyName); // AccessPolicy
console.log(pol2.policyName); //
AuthenticationPolicy
Variables scope

1.   Start from local scope and ends till global
     scope.
function closures
Prototype property

Every function has a prototype property
Every object’s scope chain fall backs to constructor
function’s prototype.
var func = function() {this.a=10; }
func.prototype.a = 20;
var obj = new func();
console.log(obj.a); // 10
delete obj.a;
console.log(obj.a); // 20
Prototype
Prototype facts

   Prototype object is common across all
    instances of the function( class)
   Prototype is dynamic, any changes made in
    prototype gets reflected in all object
    instances instantly.
__proto__ and constructor

var func = function() { }
func.prototype.a = 10;
var obj = new func();
obj.a; // 10
obj.__proto__.a ; // 10
obj.constructor.prototype.a; // a
Using prototype to create class

var funcA = function() {this.a = 10;}
funcA.prototype.b = 20;
funcA.prototype.doSomething = function()
{ }

var objA = new funcA();
funcA.prototype.c = 30;
console.log(objA);
Prototype chaining

var A = function(){};

var B = function(){};
B.prototype = new A();
B.prototype.constructor
= B;

var X = new B();
JSON

JavaScript Object Notation
Array []
Object {“key”:”value, ….}

var obj = {};
obj.a = 10;
obj.doSomething = function(){};
Using JSON to create object and
class

var myClass = function (arg1) {
            var _property1 = 20;
            var _method = function() {};
            return {
                  public_property:arg1,
                  public_method:function() {
                        _method();
                        }
                  };
}
var myObject = new myClass(10);
AJAX

Asynchronous JavaScript And ( Advanced)
XML
XMLHttpRequest Object
AJAX Request
XMLHttpRequest – cross browser Support

if (typeof XMLHttpRequest == "undefined") {

 XMLHttpRequest = function () {
  try { return new
   ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch
(e) {}
  try { return new
   ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch
(e) {}
  try { return new
   ActiveXObject("Microsoft.XMLHTTP"); } catch
(e) {}
  throw new Error("This browser does not support
Ajax example

var xhr = new XMLHttpRequest();
xhr.onreadystatechange =
 function() {
  if(xhr.readyState == 4){
alert(xhr. responseText);
  }
 };
xhr.open("GET","page.xml",true);
xhr.send(null);
Event Handling

Event propagation and event Bubbling

                        IE only support event
                        bubbling
Adding event Handlers

Mozilla compatible browsers
[elementObject].addEventListener(“event_h
andler”, handlerFunction, boolCapture);
[elementObject].removeEventListener(“even
t_handler”, handlerFunction,
boolCapture);
IE
[elementObject].attachEvent(“event_handle
r”, handlerFunction);
[elementObject].detachEvent(“event_handle
r”, handlerFunction);
Timing functions

setTimeout– calls only once
var timeoutVar =
setTimeout( function_to_call,
milliseconds);
clearTimeout(timeoutVar);

setInterval – calls repeatedly
var intervalVar =
setInterval( function_to_call,
milliseconds);
clearInterval(intervalVar);
DOM API

document.getElementById
document.getElementsByTagName

document.createElement
document.appendChild

elementObject.innerHTML
Introduction to Javascript
Introduction to Javascript

More Related Content

What's hot

JavaScript - Chapter 12 - Document Object Model
  JavaScript - Chapter 12 - Document Object Model  JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
WebStackAcademy
 
JavaScript - Chapter 3 - Introduction
 JavaScript - Chapter 3 - Introduction JavaScript - Chapter 3 - Introduction
JavaScript - Chapter 3 - Introduction
WebStackAcademy
 
Java script
Java scriptJava script
Java script
Sadeek Mohammed
 
jQuery
jQueryjQuery
Javascript
JavascriptJavascript
Javascript
mussawir20
 
Javascript functions
Javascript functionsJavascript functions
Javascript functions
Alaref Abushaala
 
Javascript essentials
Javascript essentialsJavascript essentials
Javascript essentials
Bedis ElAchèche
 
JavaScript - Chapter 8 - Objects
 JavaScript - Chapter 8 - Objects JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - Objects
WebStackAcademy
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
Andres Baravalle
 
Javascript
JavascriptJavascript
Javascript
Manav Prasad
 
JavaScript - An Introduction
JavaScript - An IntroductionJavaScript - An Introduction
JavaScript - An Introduction
Manvendra Singh
 
JavaScript - Chapter 5 - Operators
 JavaScript - Chapter 5 - Operators JavaScript - Chapter 5 - Operators
JavaScript - Chapter 5 - Operators
WebStackAcademy
 
Javascript variables and datatypes
Javascript variables and datatypesJavascript variables and datatypes
Javascript variables and datatypesVarun C M
 
Introduction to JavaScript (1).ppt
Introduction to JavaScript (1).pptIntroduction to JavaScript (1).ppt
Introduction to JavaScript (1).ppt
MuhammadRehan856177
 
JavaScript Tutorial
JavaScript  TutorialJavaScript  Tutorial
JavaScript Tutorial
Bui Kiet
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
Arulmurugan Rajaraman
 
Javascript
JavascriptJavascript
Javascript
guest03a6e6
 
Event In JavaScript
Event In JavaScriptEvent In JavaScript
Event In JavaScript
ShahDhruv21
 

What's hot (20)

JavaScript - Chapter 12 - Document Object Model
  JavaScript - Chapter 12 - Document Object Model  JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
 
JavaScript - Chapter 3 - Introduction
 JavaScript - Chapter 3 - Introduction JavaScript - Chapter 3 - Introduction
JavaScript - Chapter 3 - Introduction
 
Java script
Java scriptJava script
Java script
 
jQuery
jQueryjQuery
jQuery
 
Javascript
JavascriptJavascript
Javascript
 
Javascript functions
Javascript functionsJavascript functions
Javascript functions
 
Javascript essentials
Javascript essentialsJavascript essentials
Javascript essentials
 
JavaScript - Chapter 8 - Objects
 JavaScript - Chapter 8 - Objects JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - Objects
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
 
Javascript
JavascriptJavascript
Javascript
 
JavaScript - An Introduction
JavaScript - An IntroductionJavaScript - An Introduction
JavaScript - An Introduction
 
Js ppt
Js pptJs ppt
Js ppt
 
JavaScript - Chapter 5 - Operators
 JavaScript - Chapter 5 - Operators JavaScript - Chapter 5 - Operators
JavaScript - Chapter 5 - Operators
 
Javascript
JavascriptJavascript
Javascript
 
Javascript variables and datatypes
Javascript variables and datatypesJavascript variables and datatypes
Javascript variables and datatypes
 
Introduction to JavaScript (1).ppt
Introduction to JavaScript (1).pptIntroduction to JavaScript (1).ppt
Introduction to JavaScript (1).ppt
 
JavaScript Tutorial
JavaScript  TutorialJavaScript  Tutorial
JavaScript Tutorial
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
 
Javascript
JavascriptJavascript
Javascript
 
Event In JavaScript
Event In JavaScriptEvent In JavaScript
Event In JavaScript
 

Viewers also liked

Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
Bryan Basham
 
Javascript conditional statements
Javascript conditional statementsJavascript conditional statements
Javascript conditional statements
nobel mujuji
 
Form Validation in JavaScript
Form Validation in JavaScriptForm Validation in JavaScript
Form Validation in JavaScript
Ravi Bhadauria
 
Form Processing In Php
Form Processing In PhpForm Processing In Php
Form Processing In PhpHarit Kothari
 
Java script ppt
Java script pptJava script ppt
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
Veerabadra Badra
 

Viewers also liked (7)

Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
 
Javascript conditional statements
Javascript conditional statementsJavascript conditional statements
Javascript conditional statements
 
Javascript validating form
Javascript validating formJavascript validating form
Javascript validating form
 
Form Validation in JavaScript
Form Validation in JavaScriptForm Validation in JavaScript
Form Validation in JavaScript
 
Form Processing In Php
Form Processing In PhpForm Processing In Php
Form Processing In Php
 
Java script ppt
Java script pptJava script ppt
Java script ppt
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 

Similar to Introduction to Javascript

JavaScript Basics
JavaScript BasicsJavaScript Basics
JavaScript Basics
Mats Bryntse
 
jQuery with javascript training by Technnovation Labs
jQuery with javascript training by Technnovation LabsjQuery with javascript training by Technnovation Labs
jQuery with javascript training by Technnovation Labs
Prasad Shende
 
JavaScript Basics - GameCraft Training
JavaScript Basics - GameCraft TrainingJavaScript Basics - GameCraft Training
JavaScript Basics - GameCraft Training
Radoslav Georgiev
 
eXo SEA - JavaScript Introduction Training
eXo SEA - JavaScript Introduction TrainingeXo SEA - JavaScript Introduction Training
eXo SEA - JavaScript Introduction Training
Hoat Le
 
JavaScript (without DOM)
JavaScript (without DOM)JavaScript (without DOM)
JavaScript (without DOM)Piyush Katariya
 
Xopus Application Framework
Xopus Application FrameworkXopus Application Framework
Xopus Application Framework
Jady Yang
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing UpDavid Padbury
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationAjax Experience 2009
 
Reversing JavaScript
Reversing JavaScriptReversing JavaScript
Reversing JavaScript
Roberto Suggi Liverani
 
JavaScript Misunderstood
JavaScript MisunderstoodJavaScript Misunderstood
JavaScript Misunderstood
Bhavya Siddappa
 
Art of Javascript
Art of JavascriptArt of Javascript
Art of Javascript
Tarek Yehia
 
[2015/2016] JavaScript
[2015/2016] JavaScript[2015/2016] JavaScript
[2015/2016] JavaScript
Ivano Malavolta
 
Advanced javascript
Advanced javascriptAdvanced javascript
Advanced javascript
Doeun KOCH
 
Master in javascript
Master in javascriptMaster in javascript
Master in javascript
Robbin Zhao
 
Ajax Lecture Notes
Ajax Lecture NotesAjax Lecture Notes
Ajax Lecture Notes
Santhiya Grace
 
Javascript
JavascriptJavascript
Javascript
Gita Kriz
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript Basics
Mindfire Solutions
 
Javascriptinobject orientedway-090512225827-phpapp02
Javascriptinobject orientedway-090512225827-phpapp02Javascriptinobject orientedway-090512225827-phpapp02
Javascriptinobject orientedway-090512225827-phpapp02Sopheak Sem
 

Similar to Introduction to Javascript (20)

oojs
oojsoojs
oojs
 
JavaScript Basics
JavaScript BasicsJavaScript Basics
JavaScript Basics
 
jQuery with javascript training by Technnovation Labs
jQuery with javascript training by Technnovation LabsjQuery with javascript training by Technnovation Labs
jQuery with javascript training by Technnovation Labs
 
JavaScript Basics - GameCraft Training
JavaScript Basics - GameCraft TrainingJavaScript Basics - GameCraft Training
JavaScript Basics - GameCraft Training
 
eXo SEA - JavaScript Introduction Training
eXo SEA - JavaScript Introduction TrainingeXo SEA - JavaScript Introduction Training
eXo SEA - JavaScript Introduction Training
 
JavaScript (without DOM)
JavaScript (without DOM)JavaScript (without DOM)
JavaScript (without DOM)
 
Xopus Application Framework
Xopus Application FrameworkXopus Application Framework
Xopus Application Framework
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus Presentation
 
Reversing JavaScript
Reversing JavaScriptReversing JavaScript
Reversing JavaScript
 
JavaScript Misunderstood
JavaScript MisunderstoodJavaScript Misunderstood
JavaScript Misunderstood
 
Art of Javascript
Art of JavascriptArt of Javascript
Art of Javascript
 
[2015/2016] JavaScript
[2015/2016] JavaScript[2015/2016] JavaScript
[2015/2016] JavaScript
 
Advanced javascript
Advanced javascriptAdvanced javascript
Advanced javascript
 
Master in javascript
Master in javascriptMaster in javascript
Master in javascript
 
Ajax Lecture Notes
Ajax Lecture NotesAjax Lecture Notes
Ajax Lecture Notes
 
Javascript
JavascriptJavascript
Javascript
 
Javascript
JavascriptJavascript
Javascript
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript Basics
 
Javascriptinobject orientedway-090512225827-phpapp02
Javascriptinobject orientedway-090512225827-phpapp02Javascriptinobject orientedway-090512225827-phpapp02
Javascriptinobject orientedway-090512225827-phpapp02
 

Recently uploaded

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 

Introduction to Javascript

  • 1. Javascript Introduction by Amit Tyagi
  • 2. What Is JavaScript?  Executes in Host Environment ( mostly Browser).  Interpreted language.  Major use cases are: a. making web pages dynamic (animations, RICH UI) b. form validation c. background communication with server (AJAX) etc. d. ….
  • 3. History  Initially LiveScript from Netscape.  JScript from Microsoft.  ECMA introduced ECMAScript for standardized Scripting language.  Current Version is 5.1 of ECMA-262.
  • 4. The Core (ECMAScript)  ECMA-262 describes it like this: “ECMAScript can provide core scripting capabilities for a variety of host environments, and therefore the core scripting language is specified...apart from any particular host environment.” ECMAScript | ---------------------------------------- | | | JavaScript Actionscript ScriptEase
  • 5. The Document Object Model (DOM)  The Document Object Model (DOM) is an application programming interface (API) for HTML as well as XML.
  • 6. DOM <html> <head> <title>Sample Page</ title> </head> <body> <p>Hello World!</p> </body> </html>
  • 7. The Browser Object Model (BOM)  BOM deals with the browser window and frames.  All function and properties starting inside window object.  Internet Explorer extends the BOM to include the ActiveXObject class, which can be used to instantiate ActiveX objects through JavaScript.
  • 9. DOM and JS World
  • 10. How to include JS in a web page Inside <script> tags <script> var a = 10; alert(a); </script> Within external file <script src=“page.js“ type=“text/javascript” ></script>
  • 12. Syntax  Mostly like C and java.  Everything is case-sensitive.  Variables are loosely typed.  End-of-line semicolons are optional.  Comments are the same as in Java, C, and Perl.
  • 13. Variables  var test = "hi“, test2, $number;  Variable declaration is optional.
  • 14. Keywords break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof
  • 15. Reserved Words abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public
  • 16. Statements  The if statement – if (condition) statement1 else statement2  do-while – do { statements } while (condition )  While – while (condition) { statements}  for – for (initialization; condition; post-loop-expression) { statements}  for-in for (property in expression) {statements}
  • 17. Data types  Primitive values  Reference values
  • 18. Primitive values  undefined  null  boolean  number  string Use typeof keyword to check type of variable.
  • 19. Reference Types  Classes or Object  The Object class – similar to java.lang.Object var car = new Object(); Or var myClass = function(){}; var myObject = new myClass(); Or JSON way var myObject = {};
  • 21. Classes and objects in javascript  No class keyword available, instead constructor function works as class definition.  Classes and objects are dynamic, can be altered at runtime.
  • 22. Builtin Objects Object Function Array String Boolean Number Date RegExp Error EvalError RangeError ReferenceError SyntaxError TypeError URIError
  • 23. Function defination function showInfo(a) { alert(a); } var showInfo = function(a) { alert(a);} var showInfo = new Function(“a”, “alert(a)”);
  • 24. Functions ( contd.)  Functions are also object, in fact everything is an object in JavaScript  Functions can return any data type, ‘undefined’ if none specified.
  • 25. Functions scope By default in window scope this points to current object’s scope, defaults to window Can be altered using call and apply method func.call(any_scope, [arg1, arg2, ..]); func.apply(any_scope, arg1, arg2,..);
  • 26. Using function as Class var Policy = function(name) { this.policyName = name; } var pol1 = new Policy(“AccessPolicy”); var pol2 = new Policy(“AuthenticationPolicy”); console.log(pol1.policyName); // AccessPolicy console.log(pol2.policyName); // AuthenticationPolicy
  • 27. Variables scope 1. Start from local scope and ends till global scope.
  • 29. Prototype property Every function has a prototype property Every object’s scope chain fall backs to constructor function’s prototype. var func = function() {this.a=10; } func.prototype.a = 20; var obj = new func(); console.log(obj.a); // 10 delete obj.a; console.log(obj.a); // 20
  • 31. Prototype facts  Prototype object is common across all instances of the function( class)  Prototype is dynamic, any changes made in prototype gets reflected in all object instances instantly.
  • 32. __proto__ and constructor var func = function() { } func.prototype.a = 10; var obj = new func(); obj.a; // 10 obj.__proto__.a ; // 10 obj.constructor.prototype.a; // a
  • 33. Using prototype to create class var funcA = function() {this.a = 10;} funcA.prototype.b = 20; funcA.prototype.doSomething = function() { } var objA = new funcA(); funcA.prototype.c = 30; console.log(objA);
  • 34. Prototype chaining var A = function(){}; var B = function(){}; B.prototype = new A(); B.prototype.constructor = B; var X = new B();
  • 35. JSON JavaScript Object Notation Array [] Object {“key”:”value, ….} var obj = {}; obj.a = 10; obj.doSomething = function(){};
  • 36. Using JSON to create object and class var myClass = function (arg1) { var _property1 = 20; var _method = function() {}; return { public_property:arg1, public_method:function() { _method(); } }; } var myObject = new myClass(10);
  • 37. AJAX Asynchronous JavaScript And ( Advanced) XML XMLHttpRequest Object
  • 39. XMLHttpRequest – cross browser Support if (typeof XMLHttpRequest == "undefined") { XMLHttpRequest = function () { try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch (e) {} try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch (e) {} try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} throw new Error("This browser does not support
  • 40. Ajax example var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if(xhr.readyState == 4){ alert(xhr. responseText); } }; xhr.open("GET","page.xml",true); xhr.send(null);
  • 41. Event Handling Event propagation and event Bubbling IE only support event bubbling
  • 42. Adding event Handlers Mozilla compatible browsers [elementObject].addEventListener(“event_h andler”, handlerFunction, boolCapture); [elementObject].removeEventListener(“even t_handler”, handlerFunction, boolCapture); IE [elementObject].attachEvent(“event_handle r”, handlerFunction); [elementObject].detachEvent(“event_handle r”, handlerFunction);
  • 43. Timing functions setTimeout– calls only once var timeoutVar = setTimeout( function_to_call, milliseconds); clearTimeout(timeoutVar); setInterval – calls repeatedly var intervalVar = setInterval( function_to_call, milliseconds); clearInterval(intervalVar);