0% found this document useful (0 votes)
8 views40 pages

13 IntroJavascript

Uploaded by

uoladele99
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views40 pages

13 IntroJavascript

Uploaded by

uoladele99
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

1 Intro to Javascript

CSC224
Client Side Scripting
2

CSC224
Why use client-side
3
programming?
PHP already allows us to create dynamic
web pages. Why also use client-side
scripting?
 client-side scripting (JavaScript) benefits:

 usability: can modify a page without


having to post back to the server (faster UI)
 efficiency: can make small, quick changes
to page without waiting for server
 event-driven: can respond to user actions
like clicks and key presses
CSC224
Why use client-side
4
programming?
 server-side programming (PHP) benefits:
 security: has access to server's private
data; client can't see source code
 compatibility: not subject to browser
compatibility issues
 power: can write files, open connections to
servers, connect to databases, ...

CSC224
What is Javascript?
5

 a lightweight programming language


("scripting language")
 used to make web pages interactive
 insert dynamic text into HTML (ex: user
name)
 react to events (ex: page load user click)
 get information about a user's computer
(ex: browser type)
 perform calculations on user's computer
(ex: form validation)
CSC224
What is Javascript?
6

 a web standard (but not supported


identically by all browsers)
 NOT related to Java other than by name
and some syntactic similarities

CSC224
Javascript vs Java
7

 interpreted, not compiled


 more relaxed syntax and rules
 fewer and "looser" data types
 variables don't need to be declared
 errors often silent (few exceptions)
 key construct is the function rather than
the class
 "first-class" functions are used in many
situations
 contained within a web page and
CSC224
integrates with its HTML/CSS content
Javascript vs Java
8

+ =

CSC224
JavaScript vs. PHP
9

 similarities:
 both are interpreted, not compiled
 both are relaxed about syntax, rules,
and types
 both are case-sensitive
 both have built-in regular expressions
for powerful text processing

CSC224
JavaScript vs. PHP
10
Feature / Criteria JavaScript PHP
Scripting language mainly for Scripting language mainly for
Type
client-side server-side
Runs in web browsers (e.g., Runs on web servers (e.g.,
Execution Environment
Chrome, Firefox) Apache, Nginx)
Enhancing web page interactivity Server-side web development
Primary Use
(frontend) (backend)
C-style syntax with unique PHP-
Syntax Style C-style syntax
specific features
Interpreted (via browser engines Interpreted (via server runtime
Interpreted or Compiled
like V8) like Zend)
Server-Side Support Via Node.js (backend runtime) Native server-side scripting
Client-Side Support Yes, runs in browsers No, not supported in browsers
Via Node.js modules (e.g., Native support for MySQL,
Database Interaction
Sequelize, Mongoose) PostgreSQL, etc.
Non-blocking, event-driven Blocking I/O, though async
Concurrency Model
(async) support exists
Embedded in HTML with <?
Integration with HTML Embedded via <script> tags
php ... ?> tags
Platform-independent (browser- Platform-independent (server-
Platform Dependency
based) based)
Community & Support Large, active community Large, mature community
CSC224
Moderate, especially for dynamic Easy to moderate, especially for
Learning Curve
frontends web dev
Linking to a JavaScript file:
11
script
<script src="filename" type="text/javascript"></script>

HTML
 script tag should be placed in HTML
page's head
 script code is stored in a separate .js file
 JS code can be placed directly in the
HTML file's body or head (like CSS)
 but this is bad style (should separate
content, presentation, and behavior

CSC224
Event-driven programming
12

 split breaks apart a string into an array


using a delimiter
 can also be used with regular expressions
(seen later)
 join merges an array into a single string,
placing a delimiter between them
CSC224
A JavaScript statement:
13
alert
alert("IE6 detected. Suck-mode enabled.");
JS

 a JS command that pops up a dialog box


with a message
CSC224
Event-driven programming
14

 you are used to programs start with a


main method (or implicit main like in
PHP)
 JavaScript programs instead wait for user

actions called events and respond to


them
 event-driven programming: writing

programs driven by user events


 Let's write a page with a clickable button

that pops up a "Hello, World" window...


CSC224
Buttons
15
<button>Click me!</button> HTML

 button's text appears inside tag; can


also contain images
 To make a responsive button or other UI
control:
1. choose the control (e.g. button) and event
(e.g. mouse 1. click) of interest
2. write a JavaScript function to run when
the event occurs
3. attach the function to the event on the
CSC224 control
JavaScript functions
16
function name() {
statement ;
statement ;
...
statement ;
} JS
function myFunction() {
alert("Hello!");
alert("How are you?");
} JS
 the above could be the contents of
example.js linked to our HTML page
 statements placed into functions can be

evaluated in response to user events


CSC224
Event handlers
17
<element attributes onclick="function();">...

HTML
<button onclick="myFunction();">Click me!</button>

HTML
 JavaScript functions can be set as event
handlers
 when you interact with the element, the
function will execute
 onclick is just one of many event HTML
attributes we'll use
 but popping up an alert window is

disruptive and annoying


CSC224
Document Object Model
18
(DOM)
 most JS code
manipulates elements
on an HTML page
 we can examine
elements' state
 e.g. see whether a box
is checked
 we can change state
 e.g. insert some new
text into a div
 we can change styles
CSC224
DOM element objects
19

CSC224
Accessing elements:
20
document.getElementById
var name = document.getElementById("id");

JS
<button onclick="changeText();">Click me!</button>
<span id="output">replace me</span>
<input id="textbox" type="text" />
HTML
function changeText() {
var span = document.getElementById("output");
var textBox = document.getElementById("textbox");

textbox.style.color = "red";

}
JS

CSC224
Accessing elements:
21
document.getElementById
 document.getElementById returns the
DOM object for an element with a given
id
 can change the text inside most
elements by setting the innerHTML
property
 can change the text in form controls by
setting the value property

CSC224
Changing element style:
22
element.style

Property or style
Attribute
object
color color
padding padding
background-color backgroundColor
border-top-width borderTopWidth
Font size fontSize
Font famiy fontFamily
CSC224
Preetify
23

function changeText() {
//grab or initialize text here

// font styles added by JS:


text.style.fontSize = "13pt";
text.style.fontFamily = "Comic Sans MS";
text.style.color = "red"; // or pink?
}
JS

CSC224
24 More Javascript Syntax

CSC224
Variables
25

var name = expression; JS

var clientName = "Connie Client";


var age = 32;
var weight = 127.4; JS
 variables are declared with the var
keyword (case sensitive)
 types are not specified, but JS does have
types ("loosely typed")
 Number, Boolean, String, Array, Object,
Function, Null, Undefined
 can find out a variable's type by calling
CSC224
typeof
Number type
26

var enrollment = 99;


var medianGrade = 2.8;
var credits = 5 + 4 + (2 * 3);
JS

 integers and real numbers are the same


type (no int vs. double)
 same operators: + - * / % ++ -- = += -=
*= /= %=
 similar precedence to Java
 many operators auto-convert types: "2"
* 3 is 6
CSC224
Comments (same as Java)
27

// single-line comment
/* multi-line comment */
JS

 identical to Java's comment syntax


 recall: 4 comment syntaxes
 HTML: <!-- comment -->
 CSS/JS/PHP: /* comment */
 Java/JS/PHP: // comment
 PHP: # comment

CSC224
Math object
28

var rand1to10 = Math.floor(Math.random() * 10 + 1);


var three = Math.floor(Math.PI);
JS

 methods: abs, ceil, cos, floor, log,


max, min, pow, random, round, sin,
sqrt, tan
 properties: E, PI

CSC224
Special values: null and
29
undefined
var ned = null;
var benson = 9;
// at this point in the code,
// ned is null
// benson's 9
// caroline is undefined
JS

 undefined : has not been declared, does


not exist
 null : exists, but was specifically
assigned an empty or null value
 Why does JavaScript have both of these?
CSC224
Logical operators
30

 > < >= <= && || ! == != === !==


 most logical operators automatically
convert types:
 5 < "7" is true
 42 == 42.0 is true
 "5.0" == 5 is true
 === and !== are strict equality tests;
checks both type and value
 "5.0" === 5 is false
CSC224
if/else statement (same as
31
Java)
if (condition) {
statements;
} else if (condition) {
statements;
} else {
statements;
}
JS
 identical structure to Java's if/else
statement
 JavaScript allows almost anything as a
condition

CSC224
Boolean type
32

var iLike190M = true;


var ieIsGood = "IE6" > 0; // false
if ("web devevelopment is great") { /* true */ }
if (0) { /* false */ }
JS
 any value can be used as a Boolean
 "falsey" values: 0, 0.0, NaN, "", null, and
undefined
 "truthy" values: anything else
 converting a value into a Boolean
explicitly:
var boolValue = Boolean(otherValue);
CSC224
 var boolValue = !!(otherValue);
for loop (same as Java)
33

var sum = 0;
for (var i = 0; i < 100; i++) {
sum = sum + i;
}
JS
var s1 = "hello";
var s2 = "";
for (var i = 0; i < s.length; i++) {
s2 += s1.charAt(i) + s1.charAt(i);
}
// s2 stores "hheelllloo"
JS

CSC224
while loops (same as Java)
34

while (condition) {
statements;
} JS

do {
statements;
} while (condition);
JS

 break and continue keywords also


behave as in Java

CSC224
Popup boxes
35

alert("message"); // message
confirm("message"); // returns true or false
prompt("message"); // returns user input string
JS

CSC224
Arrays
36

var name = []; // empty array


var name = [value, value, ..., value]; // pre-filled
name[index] = value; // store element
JS

var ducks = ["Huey", "Dewey", "Louie"];


var stooges = []; // stooges.length is 0
stooges[0] = "Larry"; // stooges.length is 1
stooges[1] = "Moe"; // stooges.length is 2
stooges[4] = "Curly"; // stooges.length is 5
stooges[4] = "Shemp"; // stooges.length is 5
JS

CSC224
Array methods
37
var a = ["Stef", "Jason"]; // Stef, Jason
a.push("Brian"); // Stef, Jason, Brian
a.unshift("Kelly"); // Kelly, Stef, Jason, Brian
a.pop(); // Kelly, Stef, Jason
a.shift(); // Stef, Jason
a.sort(); // Jason, Stef
JS
 array serves as many data structures: list,
queue, stack, ...
 methods: concat, join, pop, push, reverse,
shift, slice, sort, splice, toString, unshift
push and pop add / remove from back
 unshift and shift add / remove from front

 shift and pop return the element that is


CSC224
removed
String type
38

var s = "Connie Client";


var fName = s.substring(0, s.indexOf(" ")); // "Connie"
var len = s.length; // 13
var s2 = 'Melvin Merchant';
JS
 methods: charAt, charCodeAt,
fromCharCode, indexOf, lastIndexOf,
replace, split, substring, toLowerCase,
toUpperCase
 charAt returns a one-letter String (there is
no char type)
 length property (not a method as in Java)
 Strings can be specified with "" or ''
CSC224

More about String
39
 escape sequences behave as in Java: \' \"
\& \n \t \\
 converting between numbers and
var Strings:
count = 10;
var s1 = "" + count; // "10"
var s2 = count + " bananas, ah ah ah!"; // "10 bananas, ah
ah ah!"
var n1 = parseInt("42 is the answer"); // 42
var n2 = parseFloat("booyah"); // NaN JS

 accessing the letters of a String:


var firstLetter = s[0]; // fails in IE
var firstLetter = s.charAt(0); // does work in IE
var lastLetter = s.charAt(s.length - 1);
JS
CSC224
Splitting strings: split and
40
join
var s = "the quick brown fox";
var a = s.split(" "); // ["the", "quick", "brown", "fox"]
a.reverse(); // ["fox", "brown", "quick", "the"]
s = a.join("!"); // "fox!brown!quick!the"
JS

 split breaks apart a string into an array


using a delimiter
 can also be used with regular expressions
(seen later)
 join merges an array into a single string,
placing a delimiter between them
CSC224

You might also like