Jscript Fundamentals
-
Upload
rspaike -
Category
Technology
-
view
1.377 -
download
2
Transcript of 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
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
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
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
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>
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
Nuts and Bolts
Learning Objectives
Variables and datatypes
Conversion
Operators
Control statements
Arrays
Functions
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>
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()
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>
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
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>
•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>
•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>
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
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
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=
<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
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>
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()
}
<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()
location<html><head>
</head>
<body>
<form>
<input type=button onCLick=“location.href=‘x.html’”>
</form>
</body>
</html>
Properties:
href, port,path, pathname
<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>
<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>
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>
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>
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>
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()
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}
//-->
</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>
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()">
<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>
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
<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)
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.
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>
</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)
}
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