SlideShare a Scribd company logo
adapted from slides by Alan Smith and Paweł Dorofiejczyk.
Web Information Systems - 2015
Client Side Programming 1
Javascript Introduction
Just an overview
1
Javascript Introduction
Javascript is
◦ A prototype-based scripting
language
◦ Dynamic
◦ Loosely typed
◦ Multi-Paradigm
▫ Object-Oriented
▫ Functional
▫ Imperative
Javascript Introduction
What’s it Good For?
◦ Web Apps (Client Side)
▫ Provides programmatic access to
certain browser features, your
page's elements, their properties,
and their styles
◦ Server Side
▫ node.js
◦ Databases
▫ MongoDB, CouchDB
Javascript Introduction
Anything Else?
◦ Scripting
▫ OpenOffice
▫ Adobe CS
 Photoshop
 Illustrator
 Dreamweaver
◦ Cross-Platform
▫ Enyo
▫ WinJS
Javascript Basics
How to use it
2
Javascript Basics
Local Variables
Introduce Variables with “var”
◦ var myString = “Hi”;
◦ var myNumber = 1;
◦ var myOtherNumber = 1.1;
◦ var myBoolean = true;
Don’t Create a
Variable Without
var!
This is a Global Variable Declaration.
Don’t do this!
Javascript Basics
Variable Types
typeof
◦ typeof “hi”; // string
Gotchas
◦ typeof []; // object
◦ typeof null; // object
◦ typeof NaN;// number
Javascript Basics
Functions
◦ Are objects
◦ Can be anonymous with reference
stored in a variable
▫ no name necessary
◦ Can create other functions
▫ try not to do this
◦ Are closures
▫ have there own scope
◦ Prototypes
▫ more on this later
Javascript Basics
Function Syntax
function foo() {
console.log(“hello world”);
}
is equivalent to the anonymous
var foo = function() {
console.log(“hello world”);
}
Javascript Basics
Function Args
Primitives
◦ always passed by value
Objects
◦ passed by reference
Javascript Basics
Function Args
var test = function(a, b, obj) {
obj.modified = true;
console.log(arguments);
}
var obj = {};
console.log(obj.modified); // undefined
test(1, 'a', obj);
// { '0': 1, '1': 'a', '2': { modified: true } }
console.log(obj.modified); // true
Javascript Basics
Function Scope
◦ Static (lexical)
◦ Created only by function
◦ Function arguments becomes part of
scope
◦ Child scope have reference to
parent scope (scope chain)
◦ this is not scope (!!!)
Javascript Basics
Function Scope
var accumulator = function(x) {
this.sum = (this.sum || 0) + x;
return this.sum;
}
console.log(accumulator(1)); //1
console.log(accumulator(1)); //2
console.log(accumulator.sum); //undefined
console.log(sum); // 2 !!!
Javascript Basics
Notes on “this”
}
var bar = function(x) {
this.x = x;
return this.x;
}
} ← this refers to the global scope by default
In the browser, “this” refers to window
Javascript Basics
Objects
◦ Dynamic
◦ non-ordered
◦ key-value pairs
◦ Array access or object access
◦ Iterable
◦ Created in runtime
◦ Object literal {}
◦ No privacy control at object level
◦ Prototypal inheritance
◦ Constructor functions
Javascript Basics
A Simple Object
◦ var obj = {};
A Little More
◦ var obj = {
name: “Simple Object”
}
Access via
◦ obj.name
◦ obj[“name”]
Javascript Basics
Special Operators
◦ “+” will also concat two strings
▫ 1 + 2 = 3 (as expected)
▫ “foo”+”bar” = “foobar”
◦ Unary “+” will change type
▫ +”1” = 1
◦ “===” and “!==” should be used
instead of “==” and “!=” as the former
will not attempt type conversion.
Javascript Basics
More Special Operators
◦ “&&” and “||” can be used outside of
conditionals for smaller, though less
readable code.
▫ “&&” will guard against null refs
 return obj && obj.name;
▫ “||” will let you assign values only if
they exist.
 var x = name || obj.name;
The Document Object Model
Javascript in the browser
3
The DOM
In the DOM, everything is a node:
◦ The document itself is a document node
◦ All HTML elements are element nodes
◦ All HTML attributes are attribute nodes
◦ Text inside HTML elements are text nodes
◦ Comments are comment nodes
w3Schools
The DOM
Programmatically access page
elements
Create new elements by:
◦ var paragraph = document.createElement('p');
◦ paragraph.id = 'content';
◦ paragraph.appendChild(document.createText
Node('Hello, world'));
Don’t forget to add the element to the DOM
◦ document.body.appendChild(paragraph);
The DOM
Manipulate them by:
Setting properties
◦ var element =
document.getElementById('content');
element.style.color = 'blue';
Calling methods
◦ var firstNode = document.body.childNodes[0];
document.body.removeChild(firstNode);
The DOM
Understanding the DOM is important…
But it is verbose, tedious, may not
behave as expected across browsers.
This leads to implementation and
maintainability issues.
Javascript Libraries
Usable Javascript in the browser
4
Javascript Libraries
Popular Libraries
◦ jQuery
◦ Underscore
◦ Backbone
◦ Angular
Let’s take a look at the difference...
Javascript
var element =
document.getElementById('content');
element.style.color = 'blue';
var firstNode =
document.body.childNodes[0];
document.body.removeChild(firstNode);
Javascript Libraries
JQuery
var element =$(“#content”);
element.css(“color”, “blue”);
or element.css({color:”blue”})
$(‘body:first-child’).remove();
Javascript Libraries
$ is the global jQuery object
◦ It has its own properties and methods
$ is also a function you can call
◦ $.getJSON('student-list.php');
Relies heavily upon the familiar CSS selector
syntax and the Composite design pattern
◦ $('.urgent').css({ backgroundColor: 'red', color:
'white' });
Javascript Libraries
Many methods are both getters and setters,
depending on the parameter(s), or lack thereof
Many of its functions return a jQuery object as
well, which allows method chaining
◦ $("p.neat").addClass("ohmy").show("slow");
Javascript Libraries
More advanced topics next time...
CREDITS
Special thanks to:
◦ Alan Smith
◦ Paweł Dorofiejczyk
▫ http://www.slideshare.net/PaweD
orofiejczyk/lets-
javascript?qid=35826bbe-211d-
4f50-ad02-29143c7efff2

More Related Content

What's hot (20)

ODP
Introduction of Html/css/js
Knoldus Inc.
 
PPTX
Purpose of DBMS and users of DBMS
DharmamSavani
 
PPTX
Statements and Conditions in PHP
Maruf Abdullah (Rion)
 
PPTX
Systems Administration
Mark John Lado, MIT
 
PPTX
Server Side Programming
Milan Thapa
 
PPSX
Functional dependency
Dashani Rajapaksha
 
PPTX
Servlets
ZainabNoorGul
 
PDF
Web Development Course: PHP lecture 1
Gheyath M. Othman
 
PPTX
Html5
Shiva RamDam
 
PPTX
database language ppt.pptx
Anusha sivakumar
 
PPTX
Data base security & integrity
Pooja Dixit
 
PPT
Introduction to JavaScript (1).ppt
MuhammadRehan856177
 
PPT
Software tools
ravindravekariya
 
PPT
JavaScript Objects
Reem Alattas
 
PPTX
Javascript operators
Mohit Rana
 
PPTX
Event In JavaScript
ShahDhruv21
 
PPT
Cookies & Session
university of education,Lahore
 
PPTX
Client server model
Gd Goenka University
 
PPT
Disk management
Agnas Jasmine
 
Introduction of Html/css/js
Knoldus Inc.
 
Purpose of DBMS and users of DBMS
DharmamSavani
 
Statements and Conditions in PHP
Maruf Abdullah (Rion)
 
Systems Administration
Mark John Lado, MIT
 
Server Side Programming
Milan Thapa
 
Functional dependency
Dashani Rajapaksha
 
Servlets
ZainabNoorGul
 
Web Development Course: PHP lecture 1
Gheyath M. Othman
 
Html5
Shiva RamDam
 
database language ppt.pptx
Anusha sivakumar
 
Data base security & integrity
Pooja Dixit
 
Introduction to JavaScript (1).ppt
MuhammadRehan856177
 
Software tools
ravindravekariya
 
JavaScript Objects
Reem Alattas
 
Javascript operators
Mohit Rana
 
Event In JavaScript
ShahDhruv21
 
Client server model
Gd Goenka University
 
Disk management
Agnas Jasmine
 

Similar to Lecture 5: Client Side Programming 1 (20)

PPT
JavaScript Misunderstood
Bhavya Siddappa
 
PPTX
Introduction to JavaScript
Marlon Jamera
 
PDF
Unit 4(it workshop)
Dr.Lokesh Gagnani
 
PPTX
Building High Perf Web Apps - IE8 Firestarter
Mithun T. Dhar
 
PDF
Java script
Ramesh Kumar
 
PPTX
SharePoint Cincy 2012 - jQuery essentials
Mark Rackley
 
PPTX
JS basics
Mohd Saeed
 
PDF
Basic JavaScript Tutorial
DHTMLExtreme
 
PPTX
JavaScripts & jQuery
Asanka Indrajith
 
PDF
HTML5 for the Silverlight Guy
David Padbury
 
PPT
JavaScript & Dom Manipulation
Mohammed Arif
 
PDF
JavaScript
Ivano Malavolta
 
PPTX
JavaScript Fundamentals & JQuery
Jamshid Hashimi
 
PPTX
webworkers
Asanka Indrajith
 
PPTX
Introduction to JavaScript - Web Programming
tyfeng7
 
KEY
Week3
Will Gaybrick
 
PDF
Angular JS2 Training Session #1
Paras Mendiratta
 
PPTX
Java script
Adrian Caetano
 
PPT
eXo SEA - JavaScript Introduction Training
Hoat Le
 
JavaScript Misunderstood
Bhavya Siddappa
 
Introduction to JavaScript
Marlon Jamera
 
Unit 4(it workshop)
Dr.Lokesh Gagnani
 
Building High Perf Web Apps - IE8 Firestarter
Mithun T. Dhar
 
Java script
Ramesh Kumar
 
SharePoint Cincy 2012 - jQuery essentials
Mark Rackley
 
JS basics
Mohd Saeed
 
Basic JavaScript Tutorial
DHTMLExtreme
 
JavaScripts & jQuery
Asanka Indrajith
 
HTML5 for the Silverlight Guy
David Padbury
 
JavaScript & Dom Manipulation
Mohammed Arif
 
JavaScript
Ivano Malavolta
 
JavaScript Fundamentals & JQuery
Jamshid Hashimi
 
webworkers
Asanka Indrajith
 
Introduction to JavaScript - Web Programming
tyfeng7
 
Angular JS2 Training Session #1
Paras Mendiratta
 
Java script
Adrian Caetano
 
eXo SEA - JavaScript Introduction Training
Hoat Le
 
Ad

Recently uploaded (20)

PDF
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
PDF
SSHS-2025-PKLP_Quarter-1-Dr.-Kerby-Alvarez.pdf
AishahSangcopan1
 
PDF
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
PPTX
Pyhton with Mysql to perform CRUD operations.pptx
Ramakrishna Reddy Bijjam
 
PPTX
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
PPTX
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
PDF
CONCURSO DE POESIA “POETUFAS – PASSOS SUAVES PELO VERSO.pdf
Colégio Santa Teresinha
 
PPTX
grade 5 lesson ENGLISH 5_Q1_PPT_WEEK3.pptx
SireQuinn
 
PDF
community health nursing question paper 2.pdf
Prince kumar
 
PPT
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PPSX
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
PPTX
BANDHA (BANDAGES) PPT.pptx ayurveda shalya tantra
rakhan78619
 
PDF
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
PPTX
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
PPTX
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
PDF
The dynastic history of the Chahmana.pdf
PrachiSontakke5
 
PPTX
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
PPTX
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
PPSX
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
SSHS-2025-PKLP_Quarter-1-Dr.-Kerby-Alvarez.pdf
AishahSangcopan1
 
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
Pyhton with Mysql to perform CRUD operations.pptx
Ramakrishna Reddy Bijjam
 
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
CONCURSO DE POESIA “POETUFAS – PASSOS SUAVES PELO VERSO.pdf
Colégio Santa Teresinha
 
grade 5 lesson ENGLISH 5_Q1_PPT_WEEK3.pptx
SireQuinn
 
community health nursing question paper 2.pdf
Prince kumar
 
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
BANDHA (BANDAGES) PPT.pptx ayurveda shalya tantra
rakhan78619
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
The dynastic history of the Chahmana.pdf
PrachiSontakke5
 
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 
Ad

Lecture 5: Client Side Programming 1

  • 1. adapted from slides by Alan Smith and Paweł Dorofiejczyk. Web Information Systems - 2015 Client Side Programming 1
  • 3. Javascript Introduction Javascript is ◦ A prototype-based scripting language ◦ Dynamic ◦ Loosely typed ◦ Multi-Paradigm ▫ Object-Oriented ▫ Functional ▫ Imperative
  • 4. Javascript Introduction What’s it Good For? ◦ Web Apps (Client Side) ▫ Provides programmatic access to certain browser features, your page's elements, their properties, and their styles ◦ Server Side ▫ node.js ◦ Databases ▫ MongoDB, CouchDB
  • 5. Javascript Introduction Anything Else? ◦ Scripting ▫ OpenOffice ▫ Adobe CS  Photoshop  Illustrator  Dreamweaver ◦ Cross-Platform ▫ Enyo ▫ WinJS
  • 7. Javascript Basics Local Variables Introduce Variables with “var” ◦ var myString = “Hi”; ◦ var myNumber = 1; ◦ var myOtherNumber = 1.1; ◦ var myBoolean = true;
  • 8. Don’t Create a Variable Without var! This is a Global Variable Declaration. Don’t do this!
  • 9. Javascript Basics Variable Types typeof ◦ typeof “hi”; // string Gotchas ◦ typeof []; // object ◦ typeof null; // object ◦ typeof NaN;// number
  • 10. Javascript Basics Functions ◦ Are objects ◦ Can be anonymous with reference stored in a variable ▫ no name necessary ◦ Can create other functions ▫ try not to do this ◦ Are closures ▫ have there own scope ◦ Prototypes ▫ more on this later
  • 11. Javascript Basics Function Syntax function foo() { console.log(“hello world”); } is equivalent to the anonymous var foo = function() { console.log(“hello world”); }
  • 12. Javascript Basics Function Args Primitives ◦ always passed by value Objects ◦ passed by reference
  • 13. Javascript Basics Function Args var test = function(a, b, obj) { obj.modified = true; console.log(arguments); } var obj = {}; console.log(obj.modified); // undefined test(1, 'a', obj); // { '0': 1, '1': 'a', '2': { modified: true } } console.log(obj.modified); // true
  • 14. Javascript Basics Function Scope ◦ Static (lexical) ◦ Created only by function ◦ Function arguments becomes part of scope ◦ Child scope have reference to parent scope (scope chain) ◦ this is not scope (!!!)
  • 15. Javascript Basics Function Scope var accumulator = function(x) { this.sum = (this.sum || 0) + x; return this.sum; } console.log(accumulator(1)); //1 console.log(accumulator(1)); //2 console.log(accumulator.sum); //undefined console.log(sum); // 2 !!!
  • 16. Javascript Basics Notes on “this” } var bar = function(x) { this.x = x; return this.x; } } ← this refers to the global scope by default In the browser, “this” refers to window
  • 17. Javascript Basics Objects ◦ Dynamic ◦ non-ordered ◦ key-value pairs ◦ Array access or object access ◦ Iterable ◦ Created in runtime ◦ Object literal {} ◦ No privacy control at object level ◦ Prototypal inheritance ◦ Constructor functions
  • 18. Javascript Basics A Simple Object ◦ var obj = {}; A Little More ◦ var obj = { name: “Simple Object” } Access via ◦ obj.name ◦ obj[“name”]
  • 19. Javascript Basics Special Operators ◦ “+” will also concat two strings ▫ 1 + 2 = 3 (as expected) ▫ “foo”+”bar” = “foobar” ◦ Unary “+” will change type ▫ +”1” = 1 ◦ “===” and “!==” should be used instead of “==” and “!=” as the former will not attempt type conversion.
  • 20. Javascript Basics More Special Operators ◦ “&&” and “||” can be used outside of conditionals for smaller, though less readable code. ▫ “&&” will guard against null refs  return obj && obj.name; ▫ “||” will let you assign values only if they exist.  var x = name || obj.name;
  • 21. The Document Object Model Javascript in the browser 3
  • 22. The DOM In the DOM, everything is a node: ◦ The document itself is a document node ◦ All HTML elements are element nodes ◦ All HTML attributes are attribute nodes ◦ Text inside HTML elements are text nodes ◦ Comments are comment nodes w3Schools
  • 23. The DOM Programmatically access page elements Create new elements by: ◦ var paragraph = document.createElement('p'); ◦ paragraph.id = 'content'; ◦ paragraph.appendChild(document.createText Node('Hello, world')); Don’t forget to add the element to the DOM ◦ document.body.appendChild(paragraph);
  • 24. The DOM Manipulate them by: Setting properties ◦ var element = document.getElementById('content'); element.style.color = 'blue'; Calling methods ◦ var firstNode = document.body.childNodes[0]; document.body.removeChild(firstNode);
  • 25. The DOM Understanding the DOM is important… But it is verbose, tedious, may not behave as expected across browsers. This leads to implementation and maintainability issues.
  • 27. Javascript Libraries Popular Libraries ◦ jQuery ◦ Underscore ◦ Backbone ◦ Angular Let’s take a look at the difference...
  • 28. Javascript var element = document.getElementById('content'); element.style.color = 'blue'; var firstNode = document.body.childNodes[0]; document.body.removeChild(firstNode); Javascript Libraries JQuery var element =$(“#content”); element.css(“color”, “blue”); or element.css({color:”blue”}) $(‘body:first-child’).remove();
  • 29. Javascript Libraries $ is the global jQuery object ◦ It has its own properties and methods $ is also a function you can call ◦ $.getJSON('student-list.php'); Relies heavily upon the familiar CSS selector syntax and the Composite design pattern ◦ $('.urgent').css({ backgroundColor: 'red', color: 'white' });
  • 30. Javascript Libraries Many methods are both getters and setters, depending on the parameter(s), or lack thereof Many of its functions return a jQuery object as well, which allows method chaining ◦ $("p.neat").addClass("ohmy").show("slow");
  • 31. Javascript Libraries More advanced topics next time...
  • 32. CREDITS Special thanks to: ◦ Alan Smith ◦ Paweł Dorofiejczyk ▫ http://www.slideshare.net/PaweD orofiejczyk/lets- javascript?qid=35826bbe-211d- 4f50-ad02-29143c7efff2