Javascript Introduction Norman White Material is from w
















































- Slides: 48
Javascript Introduction Norman White Material is from w 3 schools. com Go there to run examples interactively
Javascript overview • JS is the primary scripting language for browsers. – Supported by virtually all browsers – It is code that is embedded in the html and allows logic to be added that runs on the client instead of the server. – JS can dynamically change the content of the web page after it is downloaded – Official standard is ECMAScript-262
Javascript Advantages • JS runs on then browser, not the server. – Can dramatically reduce network traffic back to the server. – Move processing from the server to the browser, reduces/eliminates processing on the server. – If running on a mobile device, Javascript allows access to native mobile device capabilities through the Phone gap library. – Javascript, CSS 3 and HTML 5 will allow us to develop web pages that automatically display correctly on different devices, including mobile. • Many JS Libraries available, especially JQUERY and JQUERY Mobile.
How do we use Javascript • Insert JS code directly into the html document, or include it from a file or the web. • The browser will execute the JS code when it sees it in the document. • IMPORTANT – JS is running on the browser NOT the server! – JS may need to retrieve information from a server. We will talk about that later.
Things JS can do • React to events – – – Mouse over Mouse click Page load Form submit … • Change the html code dynamically depending on events • Detect users browser • Manage Cookies
How to insert dynamic content into html <html> <body> <h 1>My First Web Page</h 1> <script type="text/javascript"> document. write("<p>" + Date() + "</p>"); </script> </body> </html>
Hiding JS on browsers that don’t support it Surround it in comments <html> <body> <script type="text/javascript"> <!-document. get. Element. By. Id("demo"). inner. HTML=Date(); //--> </script> </body> </html>
Controlling when JS executes • We may not want to execute it when/as the page loads, but after some event. – Like: • User does something • Page is completely loaded • …
Better is to just change the <p> element Avoids rewriting complete document <html> <body> <h 1>My First Web Page</h 1> <p id="demo"></p> <script type="text/javascript"> document. get. Element. By. Id("demo"). inner. HTML=Date(); </script> </body> </html>
JS Functions • • • <html><head> <script type="text/javascript"> function display. Date() { document. get. Element. By. Id("demo"). inner. HTML=Date(); } </script> </head> <body> <h 1>My First Web Page</h 1> <p id="demo"></p> <button type="button" onclick="display. Date()“ >Display Date</button> </body> </html>
JS can be in external files <html> <head> <script type="text/javascript" src="xxx. js"></script> </head> <body> </html>
JS Blocks Code can be grouped into blocks with { } <script type="text/javascript"> { document. write("<h 1>This is a heading</h 1>"); document. write("<p>This is a paragraph. </p>"); document. write("<p>This is another paragraph. </p>"); } </script>
Comments • Single line comments start with // – // this is a single line comment • Or • Some code // comment at the end of the line • Multiline comments start with /* and end with */ – This is a multi-line comment /* Some comments Some more comments */
Variables • Variables can take on different values at different times • Variable names are case sensitive • Names have to start with a letter, a $ or an underscore • Variables that hold text have to have the text in quotes, i. e. Myvar=“Hello”
Local and Global variables Local variables are declared in a function with the var declaration, i. e. var x; These variables only exist inside the function. i. e. created when the function is entered and deleted when it exits Global variables are declared outside a function, or without the “var” keyword in a function Global variables can be used anywhere on the web page, not just in the function they were created.
Arithmetic operators (assume y = 5) Operator + * / % ++ Description Addition Subtraction Multiplication Division -- Decrement Modulus (division remainder) Increment Example x=y+2 x=y-2 x=y*2 x=y/2 x=y%2 x=++y x=y++ x=--y x=y-- Result x=7 x=3 x=10 x=2. 5 x=1 x=6 x=5 x=4 x=5 y=5 y=5 y=6 y=4 y=4
Assignment operators assume x=10 and y=5 Operator = += -= *= /= %= Example x=y x+=y x-=y x*=y x/=y x%=y Same As x=x+y x=x-y x=x*y x=x/y x=x%y Result x=5 x=15 x=50 x=2 x=0
Strings + = concatenation txt 1="What a very"; txt 2="nice day"; txt 3=txt 1+txt 2; txt 3 will be “What a verynice day” txt 1="What a very"; txt 2="nice day"; txt 3=txt 1+" "+txt 2; txt 3 will be “What a very nice day”
Strings and numbers • Result of adding strings and numbers is a string…. x=5+5; document. write(x); x="5"+"5"; document. write(x); x=5+"5"; document. write(x); x="5"+5; document. write(x);
Comparison Operators x=5 Operator == === != > < >= <= Description is equal to Example x==8 is false x==5 is true is exactly equal to (value and type) x===5 is true x==="5" is false is not equal x!=8 is true is greater than x>8 is false is less than x<8 is true is greater than or equal to x>=8 is false is less than or equal to x<=8 is true Use: If (age<18) document. write(“Too young”);
Logical Operators x=6 and y=3 Operator Description Example && || ! and or not (x < 10 && y > 1) is true (x==5 || y==5) is false !(x==y) is true Conditional operator Variablename= (condition)? value 1: value 2 <script type="text/javascript"> var visitor="PRES"; var greeting=(visitor=="PRES")? "Dear President ": "Dear "; document. write(greeting); </script>
Conditional Statements if if … else If. . else if … else switch
If Statement if (condition) { Code to be executed } <script type="text/javascript"> //Write a "Good morning" greeting if //the time is less than 10 var d=new Date(); var time=d. get. Hours(); if (time<10) { document. write("<b>Good morning</b>"); } </script>
If …else if (condition) { code to be executed if condition is true } else { code to be executed if condition is not true } <script type="text/javascript"> //If the time is less than 10, you will get a "Good morning" greeting. //Otherwise you will get a "Good day" greeting. var d = new Date(); var time = d. get. Hours(); if (time < 10) { document. write("Good morning!"); } else { document. write("Good day!"); } </script>
IF…else if (condition 1) { code to be executed if condition 1 is true } else if (condition 2) { code to be executed if condition 2 is true } else { code to be executed if neither condition 1 nor condition 2 is true }
Switch statement switch(n) { case 1: execute code block 1 break; case 2: execute code block 2 break; default: code to be executed if n is different from case 1 and 2 }
Switch example <script type="text/javascript"> //You will receive a different greeting based //on what day it is. Note that Sunday=0, //Monday=1, Tuesday=2, etc. var d=new Date(); var the. Day=d. get. Day(); switch (the. Day) { case 5: document. write("Finally Friday"); break; case 6: document. write("Super Saturday"); break; case 0: document. write("Sleepy Sunday"); break; default: document. write("I'm looking forward to this weekend!"); } </script>
Popup boxes alert("sometext"); (user has to click ok) <html> <head> <script type="text/javascript"> function show_alert() { alert("I am an alert box!"); } </script> </head> <body> <input type="button" onclick="show_alert()" value="Show alert box" /> </body> </html>
Confirm box user clicks OK or Cancel confirm("sometext"); <html> <head> <script type="text/javascript"> function show_confirm() { var r=confirm("Press a button"); if (r==true) { alert("You pressed OK!"); } else { alert("You pressed Cancel!"); } } </script> </head> <body> <input type="button" onclick="show_confirm()" value="Show confirm box" /> </body> </html>
Prompt box User can enter new value and click ok, or cancel prompt("sometext", "defaultvalue"); <html> <head> <script type="text/javascript"> function show_prompt() { var name=prompt("Please enter your name", "Harry Potter"); if (name!=null && name!="") { document. write("<p>Hello " + name + "! How are you today? </p>"); } } </script> </head> <body> <input type="button" onclick="show_prompt()" value="Show prompt box" /> </body> </html>
Functions (usually defined in head section, so that they are defined before calling) functionname(var 1, var 2, . . . , var. X) { some code } <html> <head> <script type="text/javascript"> function displaymessage() { alert("Hello World!"); } </script> </head> <body> <form> <input type="button" value="Click me!" onclick="displaymessage()" /> </form> </body> </html>
Return statement Used to return values from functions <html> <head> <script type="text/javascript"> function product(a, b) { return a*b; } </script> </head> <body> <script type="text/javascript"> document. write( product(4, 3) ); </script> </body> </html>
For Loops for (variable=startvalue; variable<=endvalue; variable=variable+increment) { code to be executed } <html> <body> <script type="text/javascript"> var i=0; for (i=0; i<=5; i++) { document. write("The number is " + i); document. write(" "); } </script> </body> </html>
While loop while (variable<=endvalue) { code to be executed } <html> <body> <script type="text/javascript"> var i=0; while (i<=5) { document. write("The number is " + i); document. write(" "); i++; } </script> </body> </html>
Do while (execute at least once) do { code to be executed } while (variable<=endvalue); <html> <body> <script type="text/javascript"> var i=0; do { document. write("The number is " + i); document. write(" "); i++; } while (i<=5); </script> </body> </html>
Break statement Breaks out of a loop <html> <body> <script type="text/javascript"> var i=0; for (i=0; i<=10; i++) { if (i==3) { break; } document. write("The number is " + i); document. write(" "); } </script> </body> </html>
Continue break current loop and continue with next value <html> <body> <script type="text/javascript"> var i=0 for (i=0; i<=10; i++) { if (i==3) { continue; } document. write("The number is " + i); document. write(" "); } </script> </body> </html>
For … in Loops through values of an object for (variable in object) { code to be executed } var person={fname: "John", lname: "Doe", age: 25}; var x; for (x in person) { document. write(person[x] + " "); } Result: John Doe 25
Events Actions that can be detected by JS <html> <head> <script type="text/javascript"> function display. Date() { document. get. Element. By. Id("demo"). inner. HTML=Date(); } </script> </head> <body> <h 1>My First Web Page</h 1> <p id="demo"></p> <button type="button" onclick="display. Date()">Display Date</button> </body> </html>
Events Many events, also functions that can cause events Some Examples: A mouse click A web page or an image loading Mousing over a hot spot on the web page Selecting an input field in an HTML form Submitting an HTML form A keystroke
on. Submit Event Used to check form input <form method="post" action="xxx. htm" onsubmit="return check. Form()"> If check. Form returns “True” form will be submitted, otherwise it will be cancelled. This is how we would check form fields or compute the value of a hidden field like”fchar”
Catching Errors, Try … catch try { //Run some code here } catch(err) { //Handle errors here } <html> <head> <script type="text/javascript"> var txt=""; function message() { try { adddlert("Welcome guest!"); } catch(err) { txt="There was an error on this page. nn"; txt+="Error description: " + err. message + "nn"; txt+="Click OK to continue. nn"; alert(txt); } } </script> </head> <body> <input type="button" value="View message" onclick="message()" /> </body> </html>
Throw Statement Generate an error exception throw exception <html> <body> <script type="text/javascript"> var x=prompt("Enter a number between 5 and 10: ", ""); try { if(x>10) { throw "Err 1"; } else if(x<5) { throw "Err 2"; } else if(is. Na. N(x)) { throw "Err 3"; } } catch(err) { if(err=="Err 1") { document. write("Error! The value is too high. "); } if(err=="Err 2") { document. write("Error! The value is too low. "); } if(err=="Err 3") { document. write("Error! The value is not a number. "); } } </script> </body> </html>
Special Characters Use the “” to insert special characters var txt="We are the so-called "Vikings" from the north. "; document. write(txt); INSTEAD use to escape the “ so it is interpreted as a regular character. var txt="We are the so-called "Vikings" from the north. "; document. write(txt);
Other special characters Code ‘ “ \ n r t b f Outputs single quote double quote backslash new line carriage return tab backspace form feed
Misc • Java. Script is Case Sensitive – A function named "myfunction" is not the same as "my. Function" and a variable named "my. Var" is not the same as "myvar". – Java. Script is case sensitive - therefore watch your capitalization closely when you create or call variables, objects and functions. • White Space – Java. Script ignores extra spaces. You can add white space to your script to make it more readable. The following lines are equivalent: • var name="Hege"; var name = "Hege"; • Break up a Code Line – You can break up a code line within a text string with a backslash. The example below will be displayed properly: • document. write("Hello World!"); • However, you cannot break up a code line like this: • document. write ("Hello World!");
Takeaway • • Javascript is a large language, many features Very powerful Need to be an expert to do “fancy” things Allows us to move a lot of processing to the client, reducing communications with server, very important for mobile devices where we may have limited/no bandwidth. • Would be nice if there were some preprogrammed functions to do useful things • SOLUTION: The JQUERY library
JQUERY • • Javascript library that works on most browsers. Hides many details from developers. In use at over 50% of large web sites There is now a JQUERY MOBILE library, customized for mobile devices • One statement allows you to use jquery – <script type=“text/javascript” src=“jquery. js”></script> • Next time, intro to JQUERY