web development -2

sri999
t10.pptx

HTML5, CSS3, and JavaScript

6th Edition

Exploring Arrays, Loops, and Conditional Statements

Tutorial 10

Carey

XP

XP

XP

XP

XP

Objectives

Create an array

Work with array properties and methods

Create a program loop

Work with the for loop

Write comparison and logical operators

Create a conditional statement

Use the if statement

2

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

2

Introducing the Monthly Calendar

Calendar should appear in the form of a web table with links to specific events placed within the table cells

Appearance and placement of the calendar will be set using a CSS style sheet

The program created should be easily adaptable so that it can be used to create other monthly calendars

3

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

3

Introducing the Monthly Calendar (continued)

4

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Reviewing the Calendar Structure

Names and IDs assigned to the different parts of the table

Entire calendar is set in a web table with the ID calendar_table

Cell containing the calendar title has the ID calendar_head

Seven cells containing the days of the week abbreviations all belong to the class calendar_weekdays

5

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Reviewing the Calendar Structure (continued)

All cells containing the dates of the month belong to the class calendar_dates

The cell containing the current date has the ID calendar_today

Class and ID designations make it easier for page developers to assign different styles to the different parts of the calendar

6

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Adding the calendar() Function

Place the commands that generate the calendar within a single function named createCalendar()

Initial code to generate the calendar

var thisDay = new Date(“August 24, 2018”);

document.getElementById(“calendar”).innerHTML = createCalendar(thisDay);

7

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Adding the calendar() Function (continued)

function createCalendar(calDate) {

var calendarHTML = “<table id='calendar_table'>”;

calendarHTML += “</table>”;

return calendarHTML;

}

thisDay variable: Stores the current date

8

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

8

Introducing Arrays

getMonth() method: Extracts a month number

getFullYear() method: Extracts the four-digit year value

The Date method does not return the name of the month

One way to associate each month number with a month name is by using an array

9

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Introducing Arrays (continued 1)

Array: Collection of values organized under a single name

Index: The number that each individual value is associated with and that distinguishes it from other values in the array

Array values are referenced using the expression array[i]

where array is the name of the array and i is the index of a specific value in the array

10

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Introducing Arrays (continued 2)

Index values start with 0 so that the initial item in an array has an index value of 0

Second item in the array will have an index value of 1, and so on

Example

The expression monthName[4] references the fifth (not the fourth) item in the monthName array

11

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Creating and Populating an Array

To create an array, apply the object constructor

var array = new Array(length);

where array is the name of the array and length is the number of items in the array

The length value is optional; if the length parameter is omitted then the array expands automatically as more items are added to it

12

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Creating and Populating an Array (continued 1)

An array can be populated with values by specifying both the array name and the index number of the array item

Command to set the value of a specific item in an array

array[i] = value;

where value is the value assigned to the array item with the index value i

13

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Creating and Populating an Array (continued 2)

Populate the entire array in a single statement using the following command:

var array = new Array(values);

where values is a comma-separated list of the values in the array

Example

var monthName = new Array(“January”, “February”, “March”, “April”, “May”, “June”, “July”, “August”, “September”, “October”, “November”, “December”);

14

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Creating and Populating an Array (continued 3)

Array literal: Creates an array in which the array values are a comma-separated list within a set of square brackets

var array = [values];

where values are the values of the array

Example

var monthName = [“January”, February”, “March”, “April”, “May”, “June”, “July”, “August”, “September”, “October”, “November”, “December”];

15

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Creating and Populating an Array (continued 4)

Array values need not be of the same data type

Mix of numeric values, text strings, and other data types within a single array is allowed

Example

var x = [“April”, 3.14, true, null];

16

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Working with Array Length

JavaScript array automatically expands in length as more items are added

Apply the following length property to determine the array’s current size:

array.length

where array is the name of the array

Value returned by the length property is equal to one more than the highest index number in the array

17

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Working with Array Length (continued)

Sparse arrays: Created in JavaScript in which some of the array values are undefined

The length value is not always the same as the number of array values

Occurs frequently in database applications

Value of the length property cannot be reduced without removing items from the end of the array

18

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Reversing an Array

Items are placed in an array either in the order in which they are defined or explicitly by index number, by default

JavaScript supports two methods for changing the order of the array items

reverse()

sort()

reverse(): Reverses the order of items in an array, making the last items first and the first items last

19

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Sorting an Array

sort(): Rearranges array items in alphabetical order

The sort() method when applied to numeric values will sort the values in order by their leading digits, rather than by their numerical values

20

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Sorting an Array (continued 1)

Compare function: Compares values of two adjacent array items

General form of a compare function is

function fname(a, b) {

return a negative, positive, or 0 value

}

where fname is the name of the compare function and a and b are parameters that represent a pair of array values

21

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Sorting an Array (continued 2)

Based on comparison of two adjacent array item values, the function returns a negative, positive, or zero value

If a negative value is returned, then a is placed before b in the array

If a positive value is returned, then b is placed before a

If a zero value is returned, a and b retain their original positions

22

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Sorting an Array (continued 3)

Function to sort numeric values in ascending order

function ascending(a, b) {

return a - b;

}

Function to sort numbers in descending order

function descending(a, b) {

return b - a;

}

23

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Sorting an Array (continued 4)

The compare function is applied to the sort() method as follows

array.sort(fname)

where fname is the name of the compare function

Example

x.sort(ascending)

24

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Extracting and Inserting Array Items

Subarray: Section of an array

To create a subarray use slice() method

array.slice(start, stop)

where start is the index value of the array item at which the slicing starts and stop is the index value at which the slicing ends

The stop value is optional; if it is omitted, the array is sliced to its end

25

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Extracting and Inserting Array Items (continued)

splice(): Removes and inserts array items

array.splice(start, size, values)

start is the starting index in the array, size is the number of array items to remove after the start index, and values is an optional comma-separated list of values to insert into the array

If no values are specified, the splice method simply removes items from the array

Always alters the original array

26

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

26

Using Arrays as Data Stacks

Stack: Arrays can be used to store information in a data structure

New items are added to the top of the stack or to the end of the array

A stack data structure employs the last-in first-out (LIFO) principle

In the LIFO principle the last items added to the stack are the first ones removed

27

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Using Arrays as Data Stacks (continued 1)

push() method: Appends new items to the end of an array

array.push(values)

where values is a comma-separated list of values to be appended to the end of the array

pop() method: Removes or unstacks the last item

array.pop()

28

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Using Arrays as Data Stacks (continued 2)

Queue: Employs the first-in-first-out (FIFO) principle in which the first item added to the data list is the first removed

Similar to a stack

shift() method: Removes the first array item

unshift() method: Inserts new items at the front of the array

29

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Using Arrays as Data Stacks (continued 3)

30

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Working with Program Loops

Program loop: Set of commands executed repeatedly until a stopping condition is met

Two commonly used program loops in JavaScript are

for loops

while loops

31

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Exploring the for Loop

In a for loop, a variable known as a counter variable is used to track the number of times a block of commands is run

When the counter variable reaches or exceeds a specified value, the for loop stops

General structure of a for loop

for (start; continue; update) {

commands

}

32

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Exploring the for Loop (continued 1)

where start is an expression that sets the initial value of a counter variable

continue is a Boolean expression that must be true for the loop to continue

update is an expression that indicates how the value of the counter variable should change each time through the loop

commands are the JavaScript statements that are run for each loop

33

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Exploring the for Loop (continued 2)

Command block: Collection of commands that is run each time through a loop

Indicated by its opening and closing curly braces { }

One for loop can be nested within another

34

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Exploring the while Loop

while loop: Command block that is run as long as a specific condition is met

Condition in a while loop does not depend on the value of a counter variable

General syntax for the while loop

while (continue) {

commands

}

where continue is a Boolean expression

35

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Exploring the do/while Loop

do/while loop: Generally used when the program loop should run at least once before testing stopping condition

Tests the condition to continue the loop right after the latest command block is run

Structure of the do/while loop

do {

commands

}

while (continue);

36

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Comparison and Logical Operators

Comparison operator: Compares the value of one expression to another returning a Boolean value indicating whether the comparison is true or false

37

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Comparison and Logical Operators (continued)

Logical operators allow several expressions to be connected

Example: The logical operator && returns a value of true only if both of the expressions are true

38

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Program Loops and Arrays

Program loops: Cycle through different values contained within an array

General structure to access each value from an array using a for loop

for (var i = 0; i < array.length; i++) {commands involving array[i]

}

where array contains the values to be looped through and i is the counter variable used in the loop

39

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Array Methods to Loop Through Arrays

JavaScript supports several methods to loop through the contents of an array without having to create a program loop structure

Each of these methods is based on calling a function that will be applied to each item in the array

40

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Array Methods to Loop Through Arrays (continued 1)

The general syntax

array.method(callback [, thisArg])

where array is the array, method is the array method, and callback is the name of the function that will be applied to each array item

thisArg: A callback optional argument that can be included to pass a value to the function

41

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Array Methods to Loop Through Arrays (continued 2)

General syntax of the callback function

function callback(value [, index, array]) {

commands }

where value is the value of the array item during each pass through the array, index is the numeric index of the current array item, and array is the name of the array

Only the value parameter is required; the other are optional

42

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

42

Running a Function for Each Array Item

forEach() method: Runs a function for each item in the array

General syntax

array.forEach(callback [, thisArg])

where callback is the function that is applied to each item in the array

43

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Mapping an Array

map() method: The function it calls returns a value that can be used to map the contents of an existing array into a new array

Example

var x = [3, 8, 12];

var y = x.map(DoubleIt);

function DoubleIt(value) {

return 2*value;

}

44

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Filtering an Array

filter() method: Extracts array items that match some specified condition

array.filter(callback [, thisArg])

where callback is a function that returns a Boolean value of true or false for each item in the array

Array items that return a value of true are copied into the new array

45

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Filtering an Array (continued 1)

every() method: Returns the value true if every item in the array matches the condition specified by the callback function; if otherwise, returns false

array.every(callback [, thisArg])

some() method: Returns a value of true if some array items match a condition specified in the function, but otherwise returns false if none of the array items match the condition specified in the function

46

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Filtering an Array (continued 2)

47

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Introducing Conditional Statements

Parallel array: Each entry in the array matches or is parallel to an entry in the other array

Conditional statement: Runs a command or command block only when certain circumstances are met

48

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Exploring the if Statement

The most common conditional statement is the if statement

General structure of the if statement

if (condition) {

commands

}

where condition is a Boolean expression that is either true or false and commands is the command block that is run if condition is true

49

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Exploring the if Statement (continued)

Conditional statement uses the same comparison and logical operators that are used with program loops

Modulus operator: Returns the integer remainder after dividing one integer by another

50

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Nesting if Statements

One if statement is nested inside another

51

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Exploring the if else Statement

if else statement: Chooses between alternate command blocks

It runs one command block if the conditional expression is true and a different command block if the expression is false

General structure

if (condition) {

commands if condition is true }

else {

commands if condition is false }

52

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Using Multiple else if Statements

Structure of an if else statement is:

if (condition1) {

commands1

} else if (condition2) {

commands2

}...

else {

default commands}

where condition 1, condition 2,… are the different conditions to be tested

53

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Completing the Calendar App

The completed calendar app must do the following:

Calculate the day of the week in which the month starts

Write blank table cells for the days before the first day of the month

Loop through the days of the current month, writing each date in a different table cell and starting a new table row on each Sunday

54

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Completing the Calendar App (continued)

55

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Setting the First Day of the Month

56

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Placing the First Day of the Month

57

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Writing the Calendar Days

58

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Highlighting the Current Date

59

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Displaying Daily Events

60

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Exploring the break Command

break statement: Terminates any program loop or conditional statement

Used anywhere within the program code

When a break statement is encountered, control is passed to the statement immediately following it

It is most often used to exit a program loop before the stopping condition is met

61

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Exploring the continue Command

continue statement: Stops processing the commands in the current iteration of the loop and continues on to the next iteration

It is used to jump out of the current iteration if a missing or null value is encountered

62

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP

Exploring Statement Labels

Statement labels: Identifies statements in JavaScript code

Can be referenced elsewhere in a program

Syntax of the statement label

label: statements

where label is the text of the label and statements are the statements identified by the label

63

New Perspectives on HTML5, CSS3, and JavaScript, 6th Edition

XP

XP

XP

XP

XP