JSPPT
JSPPT
1
Client Side Scripting
CS380 2
Why use client-side
programming?
Why 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
3
Why use client-side
programming?
server-side programming 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, ...
4
What is Javascript?
5
What is Javascript?
6
Javascript vs Java
CS380 7
Linking to a JavaScript file:
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
8
Event-driven programming
10
Event-driven programming
11
Buttons
<button>Click me!</button> HTML
12
JavaScript functions
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 13
Event handlers
<element attributes onclick="function();">...
HTML
14
Document Object Model
(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
e.g. make a paragraph red
15
DOM element objects
16
Accessing elements:
document.getElementById
var name = document.getElementById("id");
JS
function changeText() {
var span = document.getElementById("output");
var textBox = document.getElementById("textbox");
textBox.style.color = "red";
} JS
17
Accessing elements:
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
18
Changing element style:
element.style
Attribute Property or style object
color color
padding padding
background-color backgroundColor
border-top-width borderTopWidth
Font size fontSize
Font famiy fontFamily
19
Variables
var name = expression; JS
20
Number type
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
CS380 21
Comments (same as Java)
// single-line comment
/* multi-line comment */
JS
22
Math object
var rand1to10 = Math.floor(Math.random() * 10 + 1);
var three = Math.floor(Math.PI);
JS
23
Special values: null and
undefined
var ned = null;
var benson = 9;
// at this point in the code,
// ned is null
// benson's 9
// caroline is undefined
JS
26
Boolean type
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);
var boolValue = !!(otherValue); 27
for loop (same as Java)
var sum = 0;
for (var i = 0; i < 100; i++) {
sum = sum + i;
} JS
var s1 = "hello";
var s2 = "";
for (var i = 0; i < s1.length; i++) {
s2 += s1.charAt(i) + s1.charAt(i);
}
// s2 stores "hheelllloo" JS
28
while loops (same as Java)
while (condition) {
statements;
} JS
do {
statements;
} while (condition);
JS
29
Popup boxes
alert("message"); // message
confirm("message"); // returns true or false
prompt("message"); // returns user input string
JS
30
String type
var s = "Connie Client";
var fName = s.substring(0, s.indexOf(" ")); // "Connie"
var len = s.length; // 13
var s2 = 'Melvin Merchant';
JS
methods: charAt, 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 ''
concatenation with + :
1 + 1 is 2, but "1" + 1 is "11"
31
More about String
escape sequences behave as in Java: \' \" \& \
n \t \\
converting between numbers and Strings:
var 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: