Web Application Development Muhammad Ali
The Problem Changing the Content of Page Dynamically Efficient Utilization of Resources
The Solution How? Scripting Languages
Interpreted Languages Purpose “Automate tasks within a particular software environment” JavaScript VBScript JScript
Case Sensitive X != x Few Snapshots from History Developed by Brendan Eich (Netscape 2.0) How the Name was Coined? ▪ LiveScript ▪ Renamed to JavaScript (Dec 1995 ) ▪ Marketing Tactics ▪ Similarity with Java (& C++) Standardization Efforts ▪ ECMAScript
Communication XHTMLCSS JavaScript Flash Java Silverlight
Communication HTMLCSS JavaScript Flash Silverlight Java
Communication HTMLCSS JavaScript Flash Silverlight Java
Communication HTMLCSS JavaScript Flash Silverlight Java
Communication HTMLCSS JavaScript Flash Silverlight Java
How to add JavaScript? & Inclusion Methods ▪ Same File (HTML File) ▪ External File (JS File) ~ Preferred Approach
alert("Hello World!");
alert("Hello World!"); Please enable JavaScript!
<!-- alert("Hello World!"); // --> Please enable JavaScript!
alert prompt confirm
Number 1 2.3 String “a string” Boolean true false
Name it and Have it! Use ‘var’ to declare variables! Examples var num1 = 1; var num2 = 2.3; var str = “A String”; var anyVar; // undefined
String Type To append to strings var str1 = “abc”; var str2 = “def”; var strResult = str1 + str2; What about var result = “1” + 2; And var result = “1” - 2; And var someVar ; // No initialization alert(someVar);
Boolean Type false ▪ false, undefined, null, 0, NaN, “” (empty string) true ▪ Any other value is considered as true ▪ true, “abc”, 1, …
alert(typeof (1)); number alert(typeof(“abc”)); alert(typeof(“1”)); alert(typeof(true));
parseInt Converts a string to an integer number var integerNumber = parseInt(“12”); parseFloat Converts a string to a float number var floatNumber = parseFloat(“12.12”); Converting a Number to a String?
Loops For Loop for (start; stop; step) { action } Example for (var i = 0 ; i < 10 ; ++i) { alert(i); }
While Loop boolean someCondition = true; while (someCondition) { // Do something }
Do-While Loop boolean someCondition = true; do { // Do something } while (someCondition);
Different forms if (expr) { // Do something }
if (expr) { // Do something } else { // Do something }
if (expr) { // Do something } else if (expr) { // Do something } else { // Do something }
switch (expr) { case value1: break; case value2: break; case valueN: break; default: break; } switch (grade) { case “A”: break; case “B”: break; case “C”: break; default: break; }
Objects ▪ “An object in JavaScript is a set of properties, each of which consists of a unique name and a value belonging to one of JavaScript’s six data types” ▪ NO Classes in JavaScript! ▪ Class-Like features. var obj = new Object(); obj.Test = “Some Value”; alert(obj.Test); // Some Value delete obj.Test; alert(obj.Test); // undefined
Enumerating Properties for (var aProperty in obj) { alert(aProperty + “ is a property of obj”); } Displays Test is a property of obj
Accessing Properties obj[“Test”] = “someValue”; for (var aProperty in obj) { alert(aProperty + “ has value:” + obj[aProperty]); }
var str = new String(“This is a string”); var str = new String("abcdef"); var ch = str.charAt( 0 ); var index = str.indexOf("b", 0 ); if (index > 0 ) alert("Found at index: " + index); else alert("Not Found!");
split(separater, limit) toLowerCase() toUpperCase()
What’s an Array? var ar1 = new Array(); var ar1 = new Array(5); var ar2 = new Array(4, true, “OK”); var ar3 = [4, true, “OK”]; var twoDimAr = [ [ “X”, “O”, “O”], [ “O”, “X”, “O”], [ “O”, “X”, “O”] ];
Access an Element at Index ‘i’ ar[i] = 12; alert(ar[3]);
toString splice reverse length push
Math abs, ceil, floor, round, random, … Trigonometric, logarithmic, etc Date Dates before January 1, 1970 are not supported
Action Event Handling (Also called as handler) Function
function anyFunction() { alert(“Inside anyFunction”); } function sum(num1, num2) { return num1 + num2; }
function calculateGrade(marks) { if (marks >= 90 && marks <= 100) { return “A”; } else if (marks >= 80) { return “B”; } else if (marks >= 70) { return “Pass”; }
API (Application Programming Interface) For how JavaScript Programs can access and manipulate the HTML Document DOM Standardization
▪ DOM – 1 (1998) ▪ Complete model for an entire HTML or XML document, including means to change any portion of the document. ▪ DOM-2 (late 2000) ▪ getElementById ▪ Event model ▪ CSS ▪ DOM-3 ▪ Xpath ▪ Keyboard Event Handling
source: wikipedia
source: wikipedia
source: wikipedia
source: wikipedia
History source: w3schools
Location source: w3schools
source: w3schools
source: w3schools
Detecting Browser Version navigator.appName navigator.appVersion navigator.userAgent
My Title My link My header
Source: w3schools.com
getElementByTagId getElementsByTagName Traverse the DOM Tree
function addElement() { var newdiv = document.createElement(“div”); newdiv.setAttribute(“id”,”myDiv”); newdiv.innerHTML = “Element added!”; }
function removeElement(divToRemove) { var parentDiv = document.getElementById('myDiv'); parentDiv.removeChild(divToRemove); }
var button = window.getElementById(“msgButton”); button.addEventListener(“click”, sayHello, false); function sayHello() { window.alert(“Hello”); }
removeEventListener The event listener will no longer exist!
Quirksmode - DOM Traversal [ ] w3schools - DOM Tutorials [ ] MREDKJ - DOM Tutorials [ ]
Sets the timeout for the function var tid = setTimeout("timedCount()", 1000); Clears the timout clearTimeout(tid);
Breakpoints Call Stack Watch & Inspect Step-into, Step-over, Step-out