Top Banner
JavaScript language fundamentals Learning Objectives Brief history of JavaScript Uses Language features Inclusion of script in HTML <noscript> and hiding scripts Scripts inside <body> and <head> External scripts
40

Jscript Fundamentals

Aug 06, 2015

Download

Technology

rs.paike
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Jscript Fundamentals

JavaScript language fundamentals

Learning Objectives

Brief history of JavaScript

Uses

Language features

Inclusion of script in HTML

<noscript> and hiding scripts

Scripts inside <body> and <head>

External scripts

Page 2: Jscript Fundamentals

Netscape Navigator 2 (support for java applets and LiveScript renamed as JavaScript1.1)

Netscape developed a scripting language called LiveScriptSupported both client side and server side scripting

Microsoft- JScript IE 3

1997 ECMA (European Computer Manufacturers Association)Standardized ECMA script

W3C standardized DOM to access HTML and XMLJavaScript 1.2

Opera supporting JavaScript 1.1

Brief history of JavaScript

Page 3: Jscript Fundamentals

Response

Client Web Server

Request

HTML file

JAVA SCRIPT

Script executes locally and interacts with the browser

Programs executes on the server and sends the response

Servlet files

JSP files

HTML files

Page 4: Jscript Fundamentals

Uses• To create more interactive pages- client side validations etc.• To generate html dynamically.• Event handling• To enhance browser capabilities by giving it a better look – printing

on status bar etc.• Interaction with embedded components like applets and active x

controls.Language Features

• Object based language:no object inheritance and subclassing. Object -based because it depends on built-in objects to function.

• Semicolon, as separator for multiple statements in the same line.• Syntax similar to c++ and java• Case sensitive• Loosely typed• Platform independent• Interpreted

Page 5: Jscript Fundamentals

Scripts in HTML<HTML><HEAD><TITLE>Hello</TITLE></HEAD><BODY>First java script code<br><SCRIPT>//Java script single line commentdocument.write(“Hello java script”)/* java script scriptmulti-line comment */</SCRIPT></BODY></HTML>

NOSCRIPT and hiding scriptsSome browser don’t support javascript. They will display the javascript on the web page since they cannot interpret. To avoid that the script need to be commented. Also for such browsers <NOSCRIPT> tag may be used which can display alternative text for scripts.<SCRIPT><!— document.write(“Hello java script”) --> </SCRIPT><NOSCRIPT>Java script is not supported</NOSCRIPT>

Page 6: Jscript Fundamentals

External Script<HTML><HEAD><BODY> <SCRIPT LANGUAGE=“JavaScript”

SRC=“JSfile.js”></SCRIPT></BODY></HTML>

JSfile.js

document.write(“Hello”)

Scripts inside body and headInside head only declarations should be done. No write

statements must appear inside head tag.<HTML><HEAD><TITLE>Hello</TITLE><SCRIPT>document.write(“Hello java script”)</SCRIPT></HEAD><BODY></BODY></HTML>

Incorrect

Page 7: Jscript Fundamentals

Nuts and Bolts

Learning Objectives

Variables and datatypes

Conversion

Operators

Control statements

Arrays

Functions

Page 8: Jscript Fundamentals

Variables and Datatypes• Variable names must begin with a letter, under-score or $.,

subsequent characters can be letter or number.• Variables need not be declared in JavaScript. They just need to

be assigned with proper data. They are called data stores.• Data types supported by Java Script ared) Numeric – integer and floating point numbers (64 bit, IEE754

floating point)e) Stringsf) Boolean- true, falseg) Null, Undefined and NaN

<HTML><HEAD><SCRIPT LANGUAGE=“JavaScript” > $I=“hello”</SCRIPT></HEAD>

<BODY><SCRIPT LANGUAGE=“JavaScript”>document.write($I)</script></body>

Page 9: Jscript Fundamentals

OperatorsArithmetic: + - * / % += -= *= /= %=

Logical: & | ! && ||

Relational: > >= < <= == !=

String concatenation: +

Bit wise: >> << >>> >>= <<= >>>=

Mixing up datatypes:

S=“abc”

I=123

document.write(S+I) abc123

S=“abc”

B=true

document.write(S+B) abctrue

B=true

I=123

document.write(B+1) 124

Conversion: parseInt() and parseFloat()

Page 10: Jscript Fundamentals

Control statements• Same as in c++ or java• if else• for• while• do .. while• switch

<HTML><HEAD><SCRIPT LANGUAGE=“JavaScript” ></SCRIPT></HEAD>

<BODY><SCRIPT LANGUAGE=“JavaScript”>i=15b=truefor(j=2;j<=i/2;j++){if(i%j==0){b=false;break;}}if(b) document.write(i + “ is a prime number”)else document.write(i + “ is not a prime number”)</script></body></html>

Page 11: Jscript Fundamentals

Arrays• Declaration: are objects in JavaScript

a= new Array(3)a[0]=1 a[1]=2 a[2]=3

• A single array can hold any kind of datajunk= new Array(3)

junk[0]=“Sunday” junk[1]=0 junk[2]=true• Array lengtha.length• Array size is incremented dynamicallya= new Array()a[4]=4a.length is 5• Initialized arrayweek=new Array(“sun”,”mon”,”tue”,”wed”,”thu”,”fri”,”sat”)document.write(week[0]) sundocument.write(week) sun, mon, tue, wed …• Array of array: matrix= new Array(new Array(1,2,3), new Array(4,5,6)a[0][1] 2

Page 12: Jscript Fundamentals

Function• Creation<html><head><script language=“JavaScript”><!--function display(x){document.write(x)}--></script></head><body><script><!—display(“hello”)--></script></body></html>

• Function with return values<html><head><script language=“JavaScript”><!--function isNumber(x){for(i=0;i<x.length;i++){if(x.charAt(i)<‘0’ || x.charAt(i)>’9’)return false}return true }--></script></head><body><script><!—if(isNumber(“123”)

document.write(“number”)else

document.write(“not a number”)--></script></body></html>

Page 13: Jscript Fundamentals

•Calling a functionfunction display(x){if(x==null)x=“Greetings”document.write(x) }Can be called as : display() or display(“hello”)No overloading possible. If overloaded functions are provided, only the last function is considered•Function arguments: arguments array can be used to collect the arguments of a function.

<script language=“JavaScript”>

<!--

function sum(){

total=0

for(j=0;j<sum.arguments.length;j++){

total+=sum.arguments[j];

document.write(sum)}

--></script>

Page 14: Jscript Fundamentals

•Local and Global variablesLocal variables are created using var

<!--

function sum(){

total=0 var total=0 then it is available only in the function

for(j=0;j<sum.arguments.length;j++){

total+=sum.arguments[j];

}

--></script>…<script><!—document.write(total) // ok doesn't display if local variable--></script>

Page 15: Jscript Fundamentals

JavaScript Object Model, window object

Learning Objectives

Object Model

window object

properties

methods

events

Example communicating with the user

Example displaying status bar messages on window events

Example working with timer

Page 16: Jscript Fundamentals

JavaScript Object Model• Also called DOM (document object model) or web

browser object model.• JavaScript interacts with the web browser using the

objects defined in the Object model.windowdocument link

history anchorlocation imageframes formbutton, text,

password,radio, checkbox, select submit, reset, hidden

Array, String, Date, Math

Page 17: Jscript Fundamentals

window object•window is the default object that is available to the JavaScript. •document.write document is an object inside window and instead of document.write we can also write window.document.write implying write on current window’s document.•Properties:

name, self, top, parent, opener, defaultStatus, status, closed, length

Methods: alert(displayString), String prompt(question,defaultanswer), boolean confirm(question), Timer setTimeOut(expression, millsecs), clearTimeOut(timerobj), blur(), focus(), open(url,name,[options]), close()

Events: onLoad, onUnload, onFocus, onBlur, OnError

[options]: menubar=,toolbar,status, width=, height=

Page 18: Jscript Fundamentals

<html><head>

<script>

function communicate(){

alert(“Hello”)

s=prompt(“What is your name”, “xyz”)

b=confirm(“Do you want to see your name displayed in colors”)

a=new Array(“RED”,”GREEN”,”BLUE”,”YELLOW”, “BLACK”,”PURPLE)

while(b){

document.write(“<font color=“+a[i]+”>”+s+”</font>”)

if(i++>a.length)i=0

b=confirm(“Do you want to continue”)}}

</script>

</head><body onUnload=“alert(‘Bye!’)”>

<script> communicate()</script>

</body></html>

Communicating with user

Page 19: Jscript Fundamentals

status bar and window events<html><head>

<script>

function setStatus(x){

status=x

}

</script>

</head>

<body onLoad=“defaultStatus=‘welcome’” onBlur=“setStatus(‘OUT’) onFocus=“setStatus(“ON”)>

Look at the status bar

</body>

</html>

Page 20: Jscript Fundamentals

Timer<html><head>

<script>

a=new Array(“Welcome”,”to”,”jis”)

i=0

function setTimer(){

setTimeout(“display()”,1000);

}

function display(){

status=a[i]

i=i++%3

setTimer()

}

Page 21: Jscript Fundamentals

<html>

<head>

<title>win4</title>

</head>

<body onLoad="open('win2.html','x' ,'menubar=0')">

1. HTTP is a ______________ protocol<br>

a) application layer<br>

b) session layer<br>

c) transport layer<br>

d) network layer

</body>

</html>

open()

Page 22: Jscript Fundamentals

location, frames, history,

Opening a new page on top window

Page 23: Jscript Fundamentals

location<html><head>

</head>

<body>

<form>

<input type=button onCLick=“location.href=‘x.html’”>

</form>

</body>

</html>

Properties:

href, port,path, pathname

Page 24: Jscript Fundamentals

<html><head>

<title>Shop with us</title>

<script>

function display(x){

switch(x){

case 'left':

parent.b.l.location.href="img.jpg"

break

case 'right':

parent.b.frames[1].location.href="img.jpg"

break

case 'top':

top.location.href="img.jpg"

break

case 'bottom' :

parent.b.location.href="img.jpg"

break

case 'self' :

location.href="img.jpg"

break

default:

location.href=history.back()

}}

</script></head>

Page 25: Jscript Fundamentals

<body>

<form>

<input type="button" value="Left" onClick="display('left')">

<input type="button" value="Right" onClick="display('right')">

<input type="button" value="Top" onClick="display('top')">

<input type="button" value="Bottom" onClick="display('bottom')">

<input type="button" value="self" onClick="display('self')">

<input type="button" value="back" onClick="display('xx')">

</form>

</body>

</html>

Page 26: Jscript Fundamentals

documentProperties: images[], forms[], links[], anchors[],bgColor, fgColor, title, linkColor, alinkColor, vlinkColor

Methods: open([mimetype]), write(expr1), close()

Example 1:bgColor and fgColor

<body onFocus=“bgColor=‘white’;fgColor=‘black’” onBlur=“bgColor=‘black’;fgColor=‘black’”>

Example 2:Generating a document

<html><head><script>

function generate(){

win=open("","gen")

win.document.open("text\html")

win.document.write("<html><body onLoad=alert('ok')><U>Welcome</U>")

win.document.write("</body></html>")

win.document.close() }

</script>

<body><form><input type=‘button’ onClick=‘generate()’></form></body>

</html>

Page 27: Jscript Fundamentals

imagesProperties:border, height, width, src, name, complete

Creating new Image object:

im=new Image()

im=new Image(40,50)

Events:

onLoad, onError, onAbort, onMouseOver, onMouseOut, onDblClick

Example 1:

<html><head>

<script>

i=0

imgs=new Array("image1.jpg","image2.jpg","image3.jpg","image4.jpg","image5.jpg")

function change(){

document.images[0].src=imgs[i++ % imgs.length]}

</script></head>

<body><img src="image5.jpg" onMouseOver="change()">

</body>

</html>

Page 28: Jscript Fundamentals

On the internet it takes time to download the image. So to check if the image has been downloaded and do the required we need image as object.

<script>

i=0

imgs=new Array(5)

for(i=0;i<5;i++){

imgs[i]=new Image()

imgs[i].src="image"+ (i+1)+".jpg“ }

i=0

function set(){ setTimeout('change()',1000) }

function change(){

if(imgs[i].complete){

document.images[0].src=imgs[i++ % imgs.length].src

set()}}

</script>

</head>

<body><img src="image5.jpg">

<script>set()</script></body></html>

Page 29: Jscript Fundamentals

formProperties: action, method, name, elements[], target

Events: onSubmit, onReset

Form elements:

Events:All form elements: onBlur, onFocus

Select,text, textarea: onChange

Text, texrarea: onSelect

Button,submit,reset,radio,checkbox: onClick

Button: onMouseDown, onMouseUp,

TextArea: onKeyDown, onKeyUp, onKeyPress

Properties:

All : name, type, value (except select)

radio, checkbox: checked, defaultChecked

select: length, options[], selectedIndex

text, password, textarea:defaultValue

Methods:

All form elements: focus(), blur()

button,submit, reset: click()

Page 30: Jscript Fundamentals

Example 1: Working with text, radio and checkbox

<html><head><title>Validate</title><script>

<!--

function check(){

with(document.forms[0]){

if ((name.value=="") ){

alert("Please ensure that all fields are filled up")

return false }

if(like[0].checked)

s= "Thankyou, "+name.value +"."

else

s="Sorry !"

s=s+" As per your suggestion we shall look into areas:(";

for(i=0;i<better.length;i++)

if (better[i].checked)

s=s+ better[i].value+","

s=s+" and more ) for further improvements " }

alert(s)

return true}

Page 31: Jscript Fundamentals

//-->

</script>

</head><body>

<form action="Frame.html" onSubmit="return check()">

Name: <input type=text name=name><br><br>

Do you like our site

<input type=radio name="like" checked>Yes

<input type=radio name="like" >No<br><br>

Tell us how we can make this site better for you:<br>

<input type=checkbox name="better" value="Change bgcolor">Change the bg color<br>

<input type=checkbox name="better" value="Change fgcolor">Change the fg color<br>

<input type=checkbox name="better" value="Change layout">Change the layout<br>

<input type=checkbox name="better" value="More services">Include more services<br><br>

<input type=submit></form>

</body>

</html>

Page 32: Jscript Fundamentals

Example 2: Working with select

<html><head><script>

<!--

function check(){

i=document.f1.choose.options.selectedIndex;

if(i!=0){ if(i==1)

alert("Correct");

else

alert("Your choice, "+ document.f1.choose.options[i].text +"- is incorrect");

}}

//-->

</script></head>

<body>

<form name=f1>

Which of the following is not true about JavaScript?

<select name="choose" onChange="check()">

Page 33: Jscript Fundamentals

<option>-------Select the best answer--------</option>

<option>JavaScript is object-oriented language</option>

<option>JavaScript is loosely typed language</option>

<option>JavaScript is used for client side validations</option>

<option>JavaScript is platform independent</option>

</select>

</form>

</body>

</html>

Page 34: Jscript Fundamentals

links, anchors: array

properties: href, hostname, pathname, port, target, protocol

Events: onClick, onDblClick, onKeyDown, onKeyUp, onKeyPress, onMouseDown, onMouseUp, onMouseOver, onMouseOut

Example: Game

<html><head>

<script>

arr=new Array(‘one.hif’,’two.gif’)

i=0

im=“”

function f(x){

r=Math.floor(Math.random()*2)

document.images[x].src=arr[r]

if(i==0) im=arr[r]

if(i++>0 && im==arr[r])

alert(“You have won in “+ i + “ attempts”)

}

</script>

link, anchor and history

Page 35: Jscript Fundamentals

<body>

<table><tr>

<td><a href=“#” onClick=f(1)><img src=“blank.gif”></a></td>

<td><a href=“#” onClick=f(2)><img src=“blank.gif”></a></td></tr>

<td><a href=“#” onClick=f(3)><img src=“blank.gif”></a></td>

<td><a href=“#” onClick=f(4)><img src=“blank.gif”></a></td></tr>

</table>

</body>

</html>

History

Property: length

Methods:

back()

forward()

go(x)

Page 36: Jscript Fundamentals

MathProperties: PI, E

Methods: sin(x), cos(x), tan(x), asin(x), acos(x), atan(x),

round(x), floor(x), ceil(x), max(x,y), min(x,y), sqrt(x), pow(x,y), random(), log(x)

Rounding:

with(Math){

X=floor(3.5) 3

Y=ceil(3.5)4

Z=round(3.5) 4

}

r=Math.floor(Math.random()*2)

r between 0 and 1.

Page 37: Jscript Fundamentals

Date objectvar dt= new Date();Creates a new date object which contains system’s current date and

time.Methods:getDate() getMonth() getYear() getHours() getMinutes() getSeconds()setDate(value) setMonth(value)setYear(value) setHours(value)setMinutes(value) setSeconds(value)toGMTString() toLocalString()Example 1:

<html><head><title>time</title><script>

<!--

function setTime()

{

dt= new Date();

str=dt.getHours()+":"+dt.getMinutes()+":"+dt.getSeconds();

document.forms[0].time.value=str;

timer=setTimeout("setTime()",1000);

}

</script>

Page 38: Jscript Fundamentals

</head>

<body><form>

<input type=text name="time" readonly size=6>

</form>

<script>setTime()</script>

</body></html>

Example 2:

Difference between two dates:

<script>

Function diff(){

dt1=new Date();

dt2=new Date(2005,8,5)

millsec=1000*60*60*24

Days=Math.round((dt1-dt2)/millsec)

alert(“no of days “+ days)

}

Page 39: Jscript Fundamentals

String object

E=MC<SUP>2</SUP>“E=MC”+”2”.sup()sup()

h <SUB>2</SUB>o“h”+”2”.sub()+ “o”sub()

<strike>strike</strike>“strike”.strike()strike()

<small>Rights reserver</small>

“Rights reserved”.small()

small()

<a href=www.yahoo.com>

Yahoo</a>

Yahoo.link(www.yahoo.com)

link(url)

<I>Sky</I>“sky”.italics()italics()

<B>Hello</B>“Hello”.bold()bold()

<BLINK>Highlights</BLINK>“Highlights”.blink()blink()

<BIG>Welcome</BIG>“Welcome”.big()big()

<a name=“p2”>Part2</a>“Part2”.anchor(“p2”)anchor(aname)

HTMLExampleMethod

Page 40: Jscript Fundamentals

O“hello”.charAt(4)charAt(indexPos)

el“hello”.substring(1,3)substring(startpos,

endpos)

hi“Hi”.toLowerCase()toLowerCase()

1“hello.indexOf(“e”,0)indexOf(searchText,

startposition)

2“hi”.lengthlength

HI“hi”.toUpperCase()toUpperCase()

ResultsExamplesMethods