1 / 50

Intro to JavaScript Changing the Web Dynamically

INFO100 and CSE100. Fluency with Information Technology. Intro to JavaScript Changing the Web Dynamically. Katherine Deibel. The Plan. Next few lectures: JavaScript (JS) We will not be learning all of JS Introduction to the language Examples and projects to explore JS

sailor
Download Presentation

Intro to JavaScript Changing the Web Dynamically

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INFO100 and CSE100 Fluency with Information Technology Intro to JavaScriptChanging the Web Dynamically Katherine Deibel Katherine Deibel, Fluency in Information Technology

  2. The Plan • Next few lectures: JavaScript (JS) • We will not be learning all of JS • Introduction to the language • Examples and projects to explore JS • Establish foundation for learning more on your own Katherine Deibel, Fluency in Information Technology

  3. Project 1B Extension • Project 1B is now due on Wednesday, May 2 • Turn-in on Monday for 5 extra credit points • Turn-in on Tuesday for 2 extra credit points • Why? • The TAs are nice people • Kate is… um… • Some people nicely asked • I won't be on e-mail much this weekend Katherine Deibel, Fluency in Information Technology

  4. What is JavaScript? • JavaScript is • used to make HTML Web pages dynamic • used by professional Web designers and programmers for things like gmail • written using Notepad++ or TextWrangler • tested by running the code in your browser Katherine Deibel, Fluency in Information Technology

  5. JavaScript is not Java • JavaScript is named after the object-oriented programming language Java • The George Washington Carver to President George Washington • JS was originally called LiveScript • Designed for Netscape Navigator Browser • JS released at the same time that Navigator added Java functionality • Name change was a joint marketing effort by Netscape and Sun Microsystems Katherine Deibel, Fluency in Information Technology

  6. Static versus Dynamic • A page written in HTML will never change its content (static) • Sometimes, you need a page to update to your needs (dynamic) • Example: Lab Grading • Each TA needs to access your HTML file Katherine Deibel, Fluency in Information Technology

  7. Solution 1: Repeated Links • Create a web page with links to student pages • Problems: • Need to update page for each project • Separate pages per TA • Student switch sections, drop, add, etc. • Will have to be recreated for the next term. <a href="http://…/netID1/fit100/Project1A/project_plan.html">netID1</a> <a href="http://…/netID2/fit100/Project1A/project_plan.html">netID2</a> <a href="http://…/netID3/fit100/Project1A/project_plan.html">netID3</a> <a href="http://…/netID4/fit100/Project1A/project_plan.html">netID4</a> <a href="http://…/netID5/fit100/Project1A/project_plan.html">netID5</a> … Katherine Deibel, Fluency in Information Technology

  8. Solution 2: • Generate links on demand • Demo:proj1A-grader-helper.html Katherine Deibel, Fluency in Information Technology

  9. Other Uses of JavaScript • Image slideshows • Image magnification • Calculations • Form verification • Page style manipulation • Calculation tools (e.g., bin to hex) • Etc. Katherine Deibel, Fluency in Information Technology

  10. Adding JavaScript The Secret Ingredient is XHTML Katherine Deibel, Fluency in Information Technology

  11. Begin with HTML • HTML is static … the contents of the file are displayed as given <html xmlns="http;//www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>FirstJavaScript</title> <style type="text/css"> body {background-color: black; color: gold; font-family; corbel;} </style> </head> <body> <h1>ShowingSimple JS</h1> <!-- No JavaScipt yet, just HTML --> </body> </html> Katherine Deibel, Fluency in Information Technology

  12. JavaScript Needs HTML • JavaScript must be surrounded by <script> tags in the HTML <html xmlns="http;//www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>FirstJavaScript</title> <style type="text/css"> body {background-color: black; color: gold; font-family; corbel;} </style> </head> <body> <h1>ShowingSimple JS</h1> <script type="text/javascript"> alert("Let's show off the alert() operation"); </script> </body> </html> Note the type attribute Katherine Deibel, Fluency in Information Technology

  13. The Script Tag • <script></script> can appear anywhere in HTML • In the <head></head> • In the <body></body> • Within tags within <body></body> Katherine Deibel, Fluency in Information Technology

  14. Browsers Process Script Tags • When the browser comes to a script tag, it processes it immediately <html xmlns="http;//www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>FirstJavaScript</title> <style type="text/css"> body {background-color: black; color: gold; font-family; corbel;} </style> </head> <body> <h1>ShowingSimple JS</h1> <script type="text/javascript"> alert("Let's show off the alert() operation"); </script> </body> </html> Katherine Deibel, Fluency in Information Technology

  15. Just do it! • Demo 1: One alert • Demo 2: Multiple alerts Katherine Deibel, Fluency in Information Technology

  16. Naming and Variables We're not in mathematical Kansas anymore Katherine Deibel, Fluency in Information Technology

  17. Names In Computing • In normal language, names, and the things they name—their values—usually cannot be separated • In programming most names change values … a consequence of finite specification • Titles (US_Open_Champ), Offices (Mayor), Roles (Juliet), etc. are familiar examples of names that change values Katherine Deibel, Fluency in Information Technology

  18. Variables • Variables are named areas in memory • Recall:Computer instructions work with the memory addresses, not the values at those addresses Katherine Deibel, Fluency in Information Technology

  19. Variables • In a restaurant, each table is numbered. All night long the people and the food served at the table change, but the table still has the same number. That table number functions like a variable name. 6pm 6:40pm 7:30pm 9:00pm 8:20pm Katherine Deibel, Fluency in Information Technology

  20. Variables • Names in programming are identifiers • The things they name are their values • The package—identifier & value—is a variable, implying a possible change • Identifiers have a specific structure: • Can only use letters, digits, and _ (underscore) • Must start with a letter • Are case sensitive Katherine Deibel, Fluency in Information Technology

  21. Examples of Identifiers Correct identifiers • X • x • numOfStudents • numberOfStudents • g_constant • str • COST • form13 • Train_36_speed Incorrect Identifiers • 12x • hours/min • Important!Value • last-name • 7 • name(nick) Katherine Deibel, Fluency in Information Technology

  22. Declarations • To declare variables is to state what variables will be used • Use the word: var • Follow with a list of variables separated by , • Terminate all statements with a semicolon ; • Give variables an initial value with = • Examples • var x, input1, input2, rate; • varinterestRate = 4, pi = 3.14159; Katherine Deibel, Fluency in Information Technology

  23. Values • Computer languages allow several types of values: numeric, strings of letters, Boolean • numbers: 1 0 -433 6.022e+23 .01 • not numbers: 1,000 106 5% 7±2 • strings: "abc" 'efg' " " "B&B's" "" • not strings: <tab> ' " \ • Boolean: true false • not Boolean: T F yes no Katherine Deibel, Fluency in Information Technology

  24. Assignment • The universal form of assignment: • <variable> <assignment symbol> <expression> • For example: day = hours/24; • value of the variable on the left is changed to have the new value of expression on right • read “=” as “is assigned” “becomes” “gets” • right-to-left value flow Katherine Deibel, Fluency in Information Technology

  25. = will annoy you • In mathematics, variables and = have specific meaning • In programming, those meanings are different! • Keep this in mind • In math: x = x + 1 makes no sense • In programming: x = x + 1 just increases the value of x by 1 Katherine Deibel, Fluency in Information Technology

  26. Expressions The code type, not the facial type Katherine Deibel, Fluency in Information Technology

  27. Expressions • Expressions are like “formulas” saying how to manipulate existing values to compute new values, e.g. hours/24 • Operators: + - * / % produce numbers • Operators: < <= == != >= > on numbers (or strings for == and !=) produce Booleans • Operators: && || ! on Booleans produce Booleans • Grouping by parentheses is OK and smart • seconds = ((days*24 + hours)*60 + min)*60 Katherine Deibel, Fluency in Information Technology

  28. Example: Assigning Variables Katherine Deibel, Fluency in Information Technology

  29. Example: Assigning Variables Katherine Deibel, Fluency in Information Technology

  30. Example: Assigning Variables We can also assign a value of a variable to another variable Katherine Deibel, Fluency in Information Technology

  31. Example: Assigning Variables What happens to yourName now that we changed the value of myName? Katherine Deibel, Fluency in Information Technology

  32. Example: Assigning Variables What happens to yourName now that we changed the value of myName? Absolutely Nothing. Katherine Deibel, Fluency in Information Technology

  33. Example: Assigning Variables Remember that there is a difference between the variable myName and the string value "myName". Katherine Deibel, Fluency in Information Technology

  34. Other Assignment Operators Katherine Deibel, Fluency in Information Technology

  35. Other Assignment Operators Katherine Deibel, Fluency in Information Technology

  36. Other Assignment Operators Katherine Deibel, Fluency in Information Technology

  37. Other Assignment Operators Katherine Deibel, Fluency in Information Technology

  38. Other Assignment Operators Katherine Deibel, Fluency in Information Technology

  39. Other Assignment Operators Katherine Deibel, Fluency in Information Technology

  40. + does more than one thing • The + can be used to add numbers or join strings (concatenate) • 5 + 5  10 • "a" + "b" + "c"  "abc" • '5' + '5'  '55' • The operand type determines the operation • Combine a number and string??? • 5 + '5'  '55' • Rule: With an operand of each type, convert number to string, concatenate • is the symbol for “has the value” Katherine Deibel, Fluency in Information Technology

  41. Building An Alert() Message • Use concatenate to build an alert message: "Here's a random number: " + Math.random() • In this case the letter string tells us that the plus means concatenate; • Math.random() is a JS function that gives a random decimal number x from the range 0≤x<1 Katherine Deibel, Fluency in Information Technology

  42. Here is the JavaScript • JS “computes” the alert message for us <html xmlns="http;//www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>FirstJavaScript</title> <style type="text/css"> body {background-color: black; color: gold; font-family; corbel;} </style> </head> <body> <h1>ShowingSimple JS</h1> <script type="text/javascript"> alert("Let's show off the alert() operation"); alert("Here's a random number: " + Math.random()); </script> </body> </html> Katherine Deibel, Fluency in Information Technology

  43. Spaces and Concatenation • JS “computes” the alert message for us Note the space after the colon. If we omitted that, the alert would read: Here's a random number:0.34343 <html xmlns="http;//www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>FirstJavaScript</title> <style type="text/css"> body {background-color: black; color: gold; font-family; corbel;} </style> </head> <body> <h1>ShowingSimple JS</h1> <script type="text/javascript"> alert("Let's show off the alert() operation"); alert("Here's a random number: " + Math.random()); </script> </body> </html> Katherine Deibel, Fluency in Information Technology

  44. Parentheses Open '(' and close parentheses ')' need to be equal in number. A simple and common error is mismatched parentheses. • JS “computes” the alert message for us <html xmlns="http;//www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>FirstJavaScript</title> <style type="text/css"> body {background-color: black; color: gold; font-family; corbel;} </style> </head> <body> <h1>ShowingSimple JS</h1> <script type="text/javascript"> alert("Let's show off the alert() operation"); alert("Here's a random number: " + Math.random()); </script> </body> </html> Katherine Deibel, Fluency in Information Technology

  45. Basic Rules of Programming You thought XHTML was picky Katherine Deibel, Fluency in Information Technology

  46. My Approach to Teaching • JavaScript has many rules for how it is written • The book condenses these for you • I will condense them further • My goal: • Get you started with good practices that prevent common errors Katherine Deibel, Fluency in Information Technology

  47. Some basic rules for now • There are absolute rules: • Open and close parentheses must match • Variable names cannot begin with a number • There are 95% true rules • Every line of JS should end with a ; semicolon (exceptions will be shown on Monday) Katherine Deibel, Fluency in Information Technology

  48. Some basic rules for now • There are good practice rules: • Indent nested statements (will be explained on Monday). • Put spaces before and after operators: x + 3 not x+3 • Declare one variable per line • Declare variables at the start of the script • Comment your code ( /* text */ ) Katherine Deibel, Fluency in Information Technology

  49. Comments • Two ways to add comments in JS • // …JS will ignore everything after the // until the next line • /* … */ JS will ignore everything between the /* and */ even across multiple lines • Just use the /* */ Katherine Deibel, Fluency in Information Technology

  50. Summary • JavaScript is a typical programming language in that it has many rules • Learning strategy • Do the reading first • Practicing is better than memorizing for learning the rules • Feel free to experiment but backup your work from time to time • Great to learn from examples (w3Schools) Katherine Deibel, Fluency in Information Technology

More Related