Introduction to JavaScript

Introduction to JavaScript:



Pat Morin

COMP2405

2

Outline

• What is JavaScript?

– History

– Uses

• Adding JavaScript to HTML

• JavaScript syntax

• JavaScript events

• JavaScript classes

• The HTML Document Object Model

3

What is JavaScript?

• JavaScript is a programming language for use in

HTML pages

• Invented in 1995 at Netscape Corporation

(LiveScript)

• JavaScript has nothing to do with Java

• JavaScript programs are run by an interpreter built

into the user's web browser (not on the server)

4

Where does JavaScript Fit In?

• Recall

1. client opens connection to server

2. client sends request to server

3. server sends response to client

4. client and server close connection

• What about Step 5?

5. Client renders (displays) the response received from server

• Step 5 involves displaying HTML

• And running any JavaScript code within the HTML

5

What can JavaScript Do?

• JavaScript can dynamically modify an HTML page

• JavaScript can react to user input

• JavaScript can validate user input

• JavaScript can be used to create cookies (yum!)

• JavaScript is a full-featured programming language

• JavaScript user interaction does not require any

communication with the server

6

Pros and Cons of JavaScript

• Pros:

– Allows more dynamic HTML pages, even complete web

applications

• Cons:

– Requires a JavaScript-enabled browser

– Requires a client who trusts the server enough to run the

code the server provides

• JavaScript has some protection in place but can

still cause security problems for clients

– Remember JavaScript was invented in 1995 and webbrowsers have changed a lot since then

7

Using JavaScript in your HTML

• JavaScript can be inserted into documents by

using the SCRIPT tag









8

Where to Put your Scripts

• You can have any number of scripts

• Scripts can be placed in the HEAD or in the BODY

– In the HEAD, scripts are run before the page is displayed

– In the BODY, scripts are run as the page is displayed

• In the HEAD is the right place to define functions

and variables that are used by scripts within the

BODY

9

Using JavaScript in your HTML










10

External Scripts

• Scripts can also be loaded from an external file

• This is useful if you have a complicated script or

set of subroutines that are used in several different

documents


11

JavaScript Variables

• JavaScript has variables that you can declare with

the optional var keyword

• Variables declared within a function are local to

that function

• Variables declared outside of any function are

global variables

var myname =

"Pat Morin";

12

JavaScript Operators and Constructs

• JavaScript has most of the operators we're used to

from C/Java

– Arithmetic (+, - ,

*

, /, %)

– Assignment (=

, +=

, -=

*= /=

, %=

, ++, --)

– Logical (&&, ||, !)

– Comparison (<, >, <=

, >=

,

==)

• Note: + also does string concatentation

• Constructs:

– if, else, while, for, switch, case

13

Simple User Interaction

• There are three built-in methods of doing simple

user interaction

– alert(msg) alerts the user that something has happened

– confirm(msg) asks the user to confirm (or cancel)

something

– prompt(msg, default) asks the user to enter some text

alert("There's a monster on the wing!");

confirm("Are you sure you want to do that?");

prompt("Enter you name"

,

"Adam");

14

JavaScript Functions

• JavaScript lets you define functions using the

function keyword

• Functions can return values using the return

keyword

function showConfirm() {

confirm("Are you sure you want to do that?");

}

15

JavaScript Arrays

• JavaScript has arrays that are indexed starting at 0

• Special version of for works with arrays


16

JavaScript Events

• JavaScript can be made to respond to user events

• Common Events:

– onload and onunload : when a page is first visited or left

– onfocus, onblur, onchange : events pertaining to form

elements

– onsubmit : when a form is submitted

– onmouseover, onmouseout : for "menu effects"

• A complete list of event types is available here

– http://www.w3schools.com/jsref/jsref_events.asp

17

Exception Handling

• JavaScript also has try, catch, and throw

keywords for handling JavaScript errors

try {

runSomeCode();

} catch(err) {

var txt=

"There was an error on this page.\n\n"

+ "Error description: "

+ err.description + "\n\n"

alert(txt)

}

18

Comments in JavaScript

• Comments in JavaScript are delimited with // and /*

*/ as in Java and C++

19

JavaScript Objects

• JavaScript is object-oriented and uses the same

method-calling syntax as Java

• We have already seen this with the document

object

document.write("Hello World!");

20

Built-In JavaScript Objects

• Some basic objects are built-in to JavaScript

– String

– Date

– Array

– Boolean

– Math

21

JavaScript Strings

• A String object is created every time you use a

string literal (just like in Java)

• Have many of the same methods as in Java

– charAt, concat, indexOf, lastIndexOf, match, replace, search, 

slice, split, substr, substring, toLowerCase, toUpperCase,

valueOf

• There are also some HTML specific methods

– big, blink, bold, fixed, fontcolor, fontsize, italics, link, small, 

strike, sub, sup

• Don't use the HTML methods (use CSS instead)

– This is the worst kind of visual formatting

22

JavaScript Dates

• The Date class makes working with dates easier

• A new date is initialized with the current date

• Dates can be compared and incremented

var myDate = new Date();

myDate.setFullYear(2007,2,14);

var today = new Date();

var nextWeek = today + 7;

if (nextWeek > today) {

alert("You have less than one week left");

}

23

JavaScript Arrays and Booleans

• We have already seen the Array class

• The Boolean class encapsulates a boolean value

24

The JavaScript Math Class

• The Math class encapsulates many commonlyused mathematical entities and formulas

• These are all class methods

– abs, acos, asin, atan, atan2, ceil, cos, exp, floor, log, max,

min, pow, random, round, sin, sqrt, tan

• These are all class methods

– E, LN2, LN10, LOG2E, LOG10E, PI, SQRT1_2, SQRT2

if (Math.cos(Math.PI) != 0) {

alert("Something is wrong with Math.cos");

}

25

JavaScript and the DOM

• The Document Object Model (DOM) is a

specification that determines a mapping between

programming language objects and the elements

of an HTML document

• Not specific to JavaScript

26

HTML DOM Objects

• Environment objects

– Window, Navigator, Screen, History, Location, Document

• HTML objects

– Anchor, Area, Base, Body, Button, Event, Form, Frame,

Frameset, Iframe, Image, Checkbox, FileUpload, Hidden,

Password, Radio, Reset, Submit, Text, Link, Meta, Object, 

Option, Select, Style, Table, TableCell, TableRow, TextArea

27

HTML DOM: Document

• The Document object represents an HTML

document and can be used to access all

documents in a page

• A Document contains several collections

– anchors, forms, images, links

• Has several properties

– body, cookie, domain, lastModified, referrer, title, URL

• Has several useful methods

– getElementById, getElementsByName,

getElementsByTagName, write, writeln, open, close

28

HTML DOM: Document

• An instance of Document is already created for

you, called document

function changeF() {

var cText = document.getElementById("c");

var fText = document.getElementById("f");

...

}

...

<input id="c" type="text" />C

<input id="f" type="text" />F

29

HTML DOM: Form Elements

• One of the most common uses of JavaScript is for

form validation

• Several HTML DOM classes encapsulate form

elements

– Form, Button, Checkbox, Hidden, Password, Text, Radio,

Reset, Submit, Textarea

• Warning: Using JavaScript is not a substitute for

validating form data in CGI scripts

30

HTML DOM: Text

• A text entry field (input type=

"text") is

encapsulated by a Text object

• Variables

– value, maxLength, id, size, name, tabindex, readOnly

• Changing these variables has an immediate effect

on the displayed data

31

HTML DOM: The Document Tree

• Accessing elements and changing their properties

lets us do simple things like form validation, data

transfer etc

• HTML DOM lets us do much more

• We can create, delete, and modify parts of the

HTML document

• For this we need to understand the Document Tree

32

HTML DOM: The Document Tree

33

Navigating the Document Tree

• With JavaScript we can navigate the document

tree

• document.getElementById(),

getElementsByName(), and

getElementsByTagName() return nodes in the

document tree

• Information can be obtained from

– nodeName – The tag name

– nodeValue – The the text of a text node

– nodeType – The kind of node

34</p>

Post a Comment

0 Comments