+ All Categories
Home > Documents > JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic...

JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic...

Date post: 14-Aug-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
37
Netprog: JavaScript 1 JavaScript Client-side dynamic documents
Transcript
Page 1: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 1

JavaScript

Client-side dynamic documents

Page 2: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 2

Smart Browsers

•  Most browsers support a <SCRIPT> tag that is used to include executable content in an HTML document.

•  There are a number of scripting languages that are supported

Page 3: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 3

Client-Side Script Languages

•  Netscape and others – JavaScript

•  Internet Explorer – Jscript (MS name for JavaScript) – VBScript – PerlScript

Page 4: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 4

JavaScript Capabilities

•  Add content to a web page dynamically.

•  Alter a web page in response to user actions.

•  React to user events. •  Interact with frames. •  Manipulate HTTP cookies

Page 5: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 5

JavaScript is not Java

•  JavaScript is a very simple scripting language.

•  Syntax is similar to a subset of Java. •  Interpreted language. •  Uses objects, but doesn't really support the

creation of new object types*

*It almost does, but it's cumbersome.

Page 6: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

6

General Format –  <!doctype ...> –  <html> –  <Head> –  <Title> Name of web page </title> –  <script type="text/javascript"> –  ...script goes here –  </script> –  </head –  <body> –  ...page body here: text, forms, tables –  ...more JavaScript if needed –  ...onload, onclick, etc. commands here –  </body> –  </html>

Page 7: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

7

Characteristics

•  Case sensitive •  Object oriented •  Produces an HTML document •  Dynamically typed •  Standard operator precedence •  Overloaded operators •  Reserved words

Page 8: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

8

Characteristics

•  Division with / is not integer division •  Modulus (%) is not an integer operator •  5 / 2 yields 2.5 •  5.1 / 2.1 yields 2.4285714285714284 •  5 % 2 yields 1 •  5.1 % 2.1 yields 0.8999999999999995

Page 9: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

9

Characteristics

•  " and ' can be used in pairs •  Scope rules for variables •  Strings are very common data types •  Rich set of methods available •  Arrays have dynamic length •  Array elements have dynamic type •  Arrays are passed by reference •  Array elements are passed by value

Page 10: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 10

Language Elements

•  Variables •  Literals •  Operators •  Control Structures •  Objects

Page 11: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 11

JavaScript Variables

•  Untyped! •  Can be declared with var keyword:

var foo;

•  Can be created automatically by assigning a value: foo=1; blah="Hi Dave";

Page 12: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 12

Variables (cont.)

•  Using var to declare a variable results in a local variable (inside a function).

•  If you don't use var – the variable is a

global variable.

Page 13: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 13

Literals

•  The typical bunch: – Numbers 17 123.45 – Strings "Hello Dave" – Boolean: true false – Arrays: [1,"Hi Dave",17.234]

Arrays can hold anything!

Page 14: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 14

Operators

•  Arithmetic, comparison, assignment, bitwise, boolean (pretty much just like C).

+ - * / % ++ -- == != > <

&& || ! & | << >>

Page 15: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 15

Control Structures •  Again – pretty much just like C:

if if-else ?: switch

for while do-while

•  And a few not in C for (var in object)

with (object)

Page 16: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 16

Objects

•  Objects have attributes and methods. •  Many pre-defined objects and object

types. •  Using objects follows the syntax of C++/

Java: objectname.attributename objectname.methodname()

Page 17: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 17

Array Objects

•  Arrays are supported as objects.

•  Attribute length

•  Methods include: concat join pop push reverse sort

Page 18: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 18

Array example code

var a = [8,7,6,5]; for (i=0;i<a.length;i++) a[i] += 2; b = a.reverse();

Page 19: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 19

Many other pre-defined object types

• String: manipulation methods • Math: trig, log, random numbers • Date: date conversions • RegExp: regular expressions • Number: limits, conversion to string

Page 20: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 20

Predefined Objects

•  JavaScript also includes some objects that are automatically created for you (always available). – document – navigator – screen – window

Page 21: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 21

The document object

•  Many attributes of the current document are available via the document object:

Title Referrer URL Images Forms Links Colors

Page 22: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 22

document methods

• document.write() like a print statement – the output goes into the HTML document.

document.write("My title is" + document.title);

string concatenation!

Page 23: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 23

JavaScript Example <HEAD> <TITLE>JavaScript is Javalicious</TITLE> </HEAD> <BODY> <H3>I am a web page and here is my name:</H3>

<SCRIPT> document.write(document.title); </SCRIPT> <HR> </BODY>

Page 24: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 24

JavaScript and HTML Comments <SCRIPT> <!-- document.write("Hi Dave"); document.bgColor="BLUE"; --> </SCRIPT> (or //-->)

Page 25: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 25

JavaScript Functions

•  The keyword function used to define a function (subroutine):

function add(x,y) { return(x+y);

}

Page 26: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 26

JavaScript Events

•  JavaScript supports an event handling system. – You can tell the browser to execute

javascript commands when some event occurs.

– Sometimes the resulting value of the command determines the browser action.

Page 27: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 27

Simple Event Example <BODY BGCOLOR=WHITE onUnload="restore()"> <H5>Hello - I am a very small page!</H5> <SCRIPT> savewidth = window.innerWidth; saveheight = window.innerHeight; function restore() { window.innerWidth=savewidth; window.innerHeight=saveheight; } // Change the window size to be small window.innerWidth=300; window.innerHeight=50; document.bgColor='cyan'; </SCRIPT>

Page 28: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 28

Buttons •  You can associate buttons with JavaScript

events (buttons in HTML forms)

<FORM>

<INPUT TYPE=BUTTON

VALUE="Don't Press Me"

onClick="alert(‘now you are in trouble!’)">

</FORM>

Page 29: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 29

Some Events (a small sample)

onUnLoad onLoad onClick onMouseUp onMouseDown onDblClick onMouseOver

Window events

Button events

Link events

Page 30: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

30

Document Object Model •  Naming hierarchy used to

access individual elements of a HTML document.

•  Netscape D.O.M. is a little different than IE D.O.M.

•  Easy to use if you name all entities: – Forms, fields, images, etc.

Things are getting better all the time – there are standard DOMs defined by The W3C

Page 31: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

31

DOM example <FORM ID=myform ACTION="action_page.php">

Please Enter Your Age: <INPUT TYPE=TEXT ID=age NAME=age><BR> And your weight: <INPUT TYPE=TEXT ID=weight NAME=weight><BR>

</FORM> From javascript you can get at the age input

field as: document.myform.age.value

Page 32: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 32

Form Field Validation

•  You can have JavaScript code that makes sure the user enters valid information.

•  When the submit button is pressed the script checks the values of all necessary fields: – You can prevent the request from

happening.

Page 33: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

33

Checking Fields <script} function checkform() { if (document.myform.age.value == "") { alert("You need to specify an age"); return(false); } else { return(true); } } </script> Needs to return true or false!

Page 34: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 34

The Form <FORM METHOD=GET ACTION=action_page.php

NAME=myform onSubmit="return(checkform())"> AGE: <INPUT TYPE=TEXT NAME=age> <INPUT TYPE=SUBMIT> </FORM>

Page 35: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 35

Important Note about Form Validation •  It's a good idea to make sure the user fills out

the form before submitting.

•  Users can bypass your form – they can create requests manually (or their own forms).

•  Your CGI programs cannot rely (soley) on Client-Side JavaScript to validate form fields!

Page 36: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 36

More on Javascript – HTML DOM Methods •  HTML DOM methods are actions you can perform (on HTML

Elements). •  HTML DOM properties are values (of HTML Elements) that you

can set or change.

<html> <body> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = "Hello World!"; </script> </body> </html>

Page 37: JavaScripszhou/568/Javascript.pdf · • Arrays have dynamic length • Array elements have dynamic type • Arrays are passed by reference • Array elements are passed by value

Netprog: JavaScript 37

More on Javascript – HTML DOM Methods, Events, …

Reference: www.w3schools.com/js


Recommended