Introduction to JavaScript
Introduction to JavaScript
Overview of JavaScript
Object Orientation
Syntactic Characteristics
Primitives, Operations and Expressions
Math, Number, String and Date objects
Screen Output
Control Statements, Arrays and
Functions
Origins of JavaScript
JavaScript is initially called Mocha,
which was developed by Brendan
Eich in 1995
Originally developed by Netscape, as
LiveScript
Became a joint venture of Netscape and Sun
in 1995, renamed JavaScript
Now standardized by the European Computer
Manufacturers Association as ECMA-262
An HTML-embedded scripting language
We’ll call collections of JavaScript code
scripts, not programs
What is JavaScript ?
A scripting language is a Object Based Scripting
language.
Scripting language designed primarily for
adding interactivity to Web pages and creating
Web applications.
The user's browser interprets the script, that is, analyzes and
immediately executes it. In modern implementations, JavaScript
code may be either interpreted or compiled using a just-in-time
(JIT) compiler.
At run time, the browser decides whether (parts of) script code
should be JIT-compiled for better performance. This makes
JavaScript significantly faster and therefore more suitable for
complex performance-demanding Web applications. Recent
versions of all popular browsers have JavaScript JIT-compilers.
JavaScript and Java
JavaScript and Java are only related
through syntax
JavaScript is dynamically typed
Java Script’s support for objects is very
different
JavaScript is interpreted
• Source code is embedded inside
XHTML doc, there is no compilation
Uses of JavaScript
Transfer of some load from server to client
User interactions through forms
• Events easily detected with JavaScript
• E.g. validate user input
The Document Object Model makes it
possible to create dynamic HTML documents
with JavaScript
Syntactic Characteristics
Identifier form: begin with a letter or underscore, followed by
any number of letters, underscores, and digits
• Case sensitive
25 reserved words, plus future reserved words
Comments: both // and /* … */
Scripts are usually hidden from browsers that do not include
JavaScript interpreters by putting them in special comments
<!--
-- JavaScript script –
//-->
Semicolons can be a problem
• They are “somewhat” optional
• Problem: When the end of the line can be the end of a
statement – JavaScript puts a semicolon there
JavaScript reserved words
Break,delete,function,return,typeof,case,d
o,if,switch,var,catch,else,in,this.void,con
tinue,finally.instanceof,throw,while,defau
lt,for,new,try,with
Embedding in XHTML docs
Either directly, as in
<script type = “text/javascript”>
-- JavaScript script –
</script>
Or indirectly, as a file specified in the
src attribute of <script>, as in
<script type = “text/javascript”
src = “myScript.js”>
</script>
Primitives
All primitive values have one of the five types:
Number, String, Boolean, Undefined, or Null
Number, String, and Boolean ( wrapper objects)
The purpose of wrapper objects is to provide
properties and methods that are convenient for use
with values of the corresponding primitive type.
Primitives
All numeric values are stored in double-
precision floating point
String literals are delimited by either ' or "
Boolean values are true and false
The only Null value is null
The only Undefined value is undefined
Declaring Variables
JavaScript is dynamically typed – any variable
can be used for anything (primitive value or
reference to any object)
The interpreter determines the type of a
particular occurrence of a variable
Variables can be either implicitly or explicitly
declared
var sum = 0,
today = "Monday",
flag = false;
Numeric Operators
Math and Number Objects
The Math Object provides floor, round,
max, min, trig functions, etc.
• e.g., Math.cos(x)
The Number Object has some useful
properties
String Object
The number of characters in a string is stored
in the length property
var str = “George”;
var len = str.length;
Common methods:
Date Object
Create one with the Date constructor (no params)
var today = new Date();
Local time methods of Date:
• toLocaleString – returns a string of the date
• getDate – returns the day of the month
• getMonth – returns the month of the year (0 – 11)
• getDay – returns the day of the week (0 – 6)
• getFullYear – returns the year
• getTime – returns the number of milliseconds since
January 1, 1970
• getHours – returns the hour (0 – 23)
• getMinutes – returns the minutes (0 – 59)
• getMilliseconds – returns the millisecond (0 – 999)
Screen Output
JavaScript models the HTML document with the Document object
The model for the browser display window is the Window object
• The Window object has two properties, document and window,
which refer to the Document and Window objects, respectively
The Document object has a method, write, which dynamically
creates content
• The parameter is a string, often concatenated from parts, some of
which are variables
document.write("Answer: “, result, "<br>");
• The parameter is sent to the browser, so it can be anything that
can appear in an HTML document (any HTML tags)
Screen Output
The Window object has three methods for
creating dialog boxes
1. Alert
alert(“The sum is:” + sum + ”\n");
• Parameter is plain text, not HTML
• Opens a dialog box which displays the
parameter string and an OK button
• It waits for the user to press the OK button
Screen Output
1. Confirm
var question = confirm("Do you want
to continue this download?");
• Opens a dialog box and displays the
parameter and two buttons, OK and Cancel
• Returns a Boolean value, depending on
which button was pressed (it waits for one)
Screen Output
1. Prompt
prompt("What is your name?", “ ");
• Opens a dialog box and displays its string parameter,
along with a text box and two buttons, OK and Cancel
• The second parameter is for a default response if the
user presses OK without typing a response in the text
box (waits for OK)
http://www.cs.nott.ac.uk/~bnk/WPS/roots.html
Conditionals
Selection statements – “if” and “if…else“
if (a > b)
document.getElementById(“x”).innerHtml=(“a is
greater than b <br>”);
else {
a = b;
document.getElementById(“x”).innerHtml(“a was
not greater than b, now they are equal
<br>”);
}
The switch statement
Loops
while (control_expression)
statement or compound stmt
delete myAirplane.model;
Metacharacters:
\| ( ) [ ] { } ^ $ * +?
*n- Matches any string that contains zero or
more occurrences of n
+n-Matches any string that contains at least
one n
?n-Matches any string that contains zero or
one occurrences of n
n$-Matches any string with n at the end of it
^n- Matches any string with n at the beginning
of it
i Perform case-insensitive matching.
m Perform multiline matching
g Performs a global match that is, find all
matches rather than stopping after the
first match.
Examples:
“snow”=> /snow./