CGS 3066: Web Programming and Design Spring 2016 Introduction to JavaScript What is JavaScript? •A programming language that can be executed in every modern browser. •“Interpreted” language –Do not need to be compiled before execution. –Must be executed by an interpreter. Browsers come with their own JavaScript Engine (e.g. V8 in Chrome, Gecko in Mozilla) •Written in scripts, executed at the client side(browser) –To interact with the user locally –No need to refresh the page, less traffic for server Are Javascript and Java Similar? ● No! ● Java is a full-fledged object-oriented programming language, popular for developing large-scale enterprise applications and web applications ● Javascript is meant for use in Web programming only ● No File I/O capability, networking functions ● Targeted for HTML authors ● Faster alternative to Java in web applications What can we do with JavaScript? • A lot •Most common uses include –Interaction with user through pop-up boxes –Access any element in the document and manipulate its look, content and attributes –Create new elements and content and apply them to the document when and if they are needed –Event handling: execute operations when certain events are detected(button clicked, key pressed, mouse hovered, page loaded, value of some HTML element changed, or simply at specific time interval) Javascript usage examples •Form validation •Survey/Questionnaire design with dynamic contents •Draw and animate graphic elements •Create User interface widgets(e.g. Search box with autocomplete, draggable and resizable objects) How to use JavaScript •JavaScript code can be inserted into a HTML file. –In both <head> and <body> •For example <head> <title>JS Hello World</title> <script type="text/javascript"> window.alert("Hello World"); </script> </head> * The type attribute ("text/javascript“) is required for HTML4, optional for HTML5 How to use JavaScript •JavaScript code in HTML must be inside the <script> tag. •JavaScript can be also included from external sources using <script> tag. •Just put the following into <head> or <body> tag <script src="myScript.js“ async defer></script> • async tells the browser to load script from source asynchronously (in parallel with loading HTML content ) • defer tells the browser to load script after the entire HTML document is loaded JavaScript Syntax •JavaScript’s basic syntax is identical to that of C++ and Java. •// begins a comment that ends at the end of the line •/* and */ may be used to contain multiline comments •For instance //This is Inline comment /*Multiline comment*/ •<script> tags typically contain one or several Javascript ‘statements’ •statements must be separated by new lines or the semicolon(;) character JavaScript Variables • • • • Named variables are used to store data values. The “var” keyword is used to declare variables. “=” is used to set values to variables. Example: var length; length = 6; • Variables may be declared and defined in a single statement: var length=6; • Unlike HTML, Javascript variables are case-sensitive JavaScript Variables •JavaScript does not have typed variables. –The variable declarations do not specify a data type for the variables –May be used to associate values of any type to a variable –E.g. Integer: var num1 = 10; Floating point numbers: var PI = 3.1416; Alphabetic Character: var color = ‘c’; String of Characters: var firstname = “David”// ‘David’ also works Booleans : var x= true; var y= false; Empty/null value: var x=null; //not NULL or Null;case-sensitive Or, Arrays,Objects etc. JavaScript Variables •JavaScript has dynamic types. •A Variable having value of a certain may be re-assigned to contain another data type var x; //no data type var x = 5; //it is a number x = “Steven” //change to a string • You can use the JavaScript typeof operator to find the current data type of a JavaScript variable. window.alert(typeof "John"); //prints “string” JavaScript Operators ● Arithmetic: +, -, *, /, %, ++, -https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators ● Assignment: =, +=, -=, *=, /=, %= etc. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators ● Relational/Comparison: <, >, <=, >=, ==,===, != https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators ● Logical: &&, ||, ! https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators JavaScript String Concatenation operator ● The (+) operator is used to concatenate/join the operands when at least one operand is of String type var x=“Foo”+”bar” //x becomes ”Foobar” var y=“ben”+10 //y becomes ”ben10” • (+=) may also be used for concatenation, depending on the context var x=5; x+=5; //x is 10 var y=“5” y+=5//y is “55” x+=y //x is “1055” Javascript Input/Output capabilities • Javascript can perform limited Input/output through pop-up boxes • To generate a pop-up box: window.alert("Hello\nworld!"); • Use ‘\n’ to enter new line inside pop-up message • To read input from pop-up: var name= window.prompt(“Enter your name”); * alert() and prompt() also works even if not preceded by “window.” Javascript Input/Output capabilities(2) • To print some content directly to the web page, use document.write() function: document.write(“plain HTML content"); document.write("<h1>we can also write Content <br> with HTML tags</h1>"); • document.writeln() automatically adds a line at the end of string document.writeln(“HTML content with newline"); Javascript Input/Output capabilities(3) • Most current browsers provide access to the browser's debugging console. Although a non-standard feature, the console is frequently used be developers to print and inspect data in bulk • To access the console output , press F12 and click on ‘console’ • To print message to the console, use the console.log() function console.log(" press f12 or right click to Inspect Element. \n Then click Console to find this message!");