35
CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Embed Size (px)

Citation preview

Page 1: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

CNIT 133 Interactive Web Pags –JavaScript and AJAX

Expression

Page 2: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Agenda

• My Web Site: http://fog.ccsf.edu/~hyip (download syllabus, class notes).

• Expressions vs Statements• Compound Statements• Operators (string, arithmetic, assignment,

comparison, logical, conditional)• Special operators (delete, new, this, typeof, void)• Function• The order of operations

Page 3: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Expression• An expression is any valid set of literals, variables, operators, function calls, and

expressions that evaluates to a single value.• The resulting single value can be a number, a string, a Boolean, or a special value (null,

undefined, Infinity, or NaN); that is, the result of any expression is always one of JS’s defined data types or special values.

3 + 7 // number 103 + 7 + 10 + "" // string 20"Dr. " + " " + "Pepper" // string Dr. Pepper

• Literal is a “simple expression”:1.7 (number literal)"JS" (string literal)true (Boolean literal)null (special value){ x:2, y:2} (object literal)[2,3,4,5,6] (array literal)function (x) { return x * x; } (function leteral)

Page 4: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

statement

• A statement is any set of declarations, method calls, function calls, and expressions that performs some action.

var num = 1; // declare a variabledocument.write("hello"); // perform write action

• Statement end with (;)

Page 5: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Expressions vs Statements• Statements often contain expressions that have to be evaluated before the

specified action can be performed.

document.write("Sum: ", 3 + 7, "<br>"); // write statement with expression

1. Evaluates the expression 3 + 72. Writes the string "Sum: "3. Converts the number 10 to a string and writes it4. Finally, writes the string "<br>"

total = 1 + 2; // assignment statement with expression

1. Evaluates the expression 1 + 22. Assigns to variable - total

NOTE: all JS values can be classified as one of the three primitive data types or one of the special values null, undefined, Infinity, or NaN.

Page 6: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Expression Satements• Assignment statements are one major category of

expression statements:s = "Hello " + name;i *= 3;

• The increment and decrement operators, ++ and --, are related to assignment statements:

counter++;

• Function calls are another major category of expression statements:

alert("Welcome, " + name);window.close();

Page 7: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Compound Statements• JavaScript has a way to combine a number of

statements into a single statement (or statement block):

{x = Math.PI;cx = Math.cos(x);alert("cos(" + x + ") = " + cx);

}

• This statement block acts as a single statement, it does not end with a semicolon. The primitive statements within the block end in semicolons, but the block itself does not.

Page 8: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Operators

• Operators are the workers in expressions.• An unary operator performs work, or

operates, on one operand.• A binary operator operates on two operands.• A ternary operator operates on three

operands.

Page 9: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Operators (continue…)Operator Flavor Syntax Examples

unary Operand operator or operator operand

-88

Count++

!flag

binary Operand operator operand

7 + 8

num1 < num2

ternary Operand operator operand operator

operand

fname != null ? myName = fname : myName = “unknown”;

Page 10: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Types of Operators• JS supports five categories of operators:

String operator – operators that work on strings Arithmetic operators, or mathematical operators – operators that

perform mathematical computations Assignment operators – operators that assign a value to a variable,

object, or property Comparison operators – operators that compare two values or

expressions and return a Boolean value indicating true or false Logical operators, or Boolean operators – operators that take Boolean

values as operands and return a Boolean value indicating the true or false of the relationship.

• In addition, JS supports one special operator, the conditional operator.

Page 11: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

String Operator (concatenation)• There are only two string operators: the concatenation operator (+) and the

concatenation by value operator (+=).

• The concatenation operator (+) concatenates two strings together."Greetings, " + "everyone" // Evaluating to the string "Greetings, everyone"var salutation = "Greetings, ";var recipient = "everyone";salutation + recipient; // "Greetings, everyone“

• The concatenation by value (+=) concatenates the string on the right side to the string value stored in the variable on the left side, then assigns the result back to the left operand variable.

var greeting = "Greetings, ";greeting += "everyone"; // Then, greeting will gets “Greetings, everyone”

• NOTE: a common use of the concatenation by value operator (+=) is to pile a bunch of HTML statements into a single string variable for easy writing to a pop-up window.

Page 12: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Concatenation by value (+=)<html><head><title>concatenation by value</title><script language="JavaScript" type="text/javascript">var docContent = "";</script></head><body><h1>Concatenation by Value (+=)</h1><script language="JavaScript" type="text/javascript">docContent += "Dynamically generated page content. \n";docContent += "More dynamically generated page content. \n";docContent += "\t Still more dynamically generated page content. ";alert(docContent);</script></body></html>

Page 13: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Arithmetic (Mathematical) Operators

• Arithmetic operators are operators that perform mathematical operations.

• NOTE: all arithmetic operators work on numbers and result in a number. Division by zero results in the numeric value Infinity. (Some browser result in undefined or NaN)

Page 14: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Arithmetic OperatorsOperator Name What it does Flavor Example Result

+ Plus Adds the two operands

Binary 7 + 5 12

- Minus Subtracts the right operand from the left operand

Binary 7 – 5 2

* Multiply Multiplies the two operands

Binary 7 * 5 35

/ Divide Divides the left operand by the right operand and returns the quotient

Binary 7/5 1.4

% Modulus

(remainder)

Divides the left operand by the right operand and returns the remainder

Binary 7%5 2

Page 15: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Arithmetic Operators (continue…)Operator Name What it does Flavor Example Result

- Negation Negates the operand

Unary -7 -7

++ Increment Adds 1 to the operand

Unary Assume x=7

y = ++x;

y = x++;

8 (before assignment)

7 (before assignment)

8 (after assignment)

-- decrement Subtracts 1 from the operand

Unary Assume x=7

y = --x;

y = x--;

6 (before assignment)

7 (before assignment)

6 (after assignment)

Page 16: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Assignment Operators

• Assignment operation either initializes or changes the contents of the variable listed on the left of the operator.

var myCup = "lemonade";myCup += " tea"; // "lemonade tea"myCup = "ice water";

Page 17: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Assignment Operators (continue…)Operator Name Example Is equivalent to Applies to

= Equals or gets x=y

x=7

Any data type

+= Add by value x += y

x += 5

x = x + y

x = x + 5

Numbers and strings

-= Subtract by value x -= y

x -= 7

x = x – y

x = x – 7

Numbers only

*= Multiply by value x *= y

x *= 5

x = x * y

x = x * 5

Numbers only

/= Divide by value x /= y

x /= 7

x = x / y

x = x / 7

Numbers only

%= Modulus by value x %= y

x %= 5

x = x % y

x = x % 5

Numbers only

Page 18: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Comparison Operators• Comparison operators compares two values or two expressions of any

data type. • Usually, the two items being compared are of the same data type. • The result of a comparison is always a Boolean truth value: true or false.• JS often performs conversions for you when you do comparisons of strings

and numbers.• All comparisons except (===) and (!==), JS assumes you are trying to

compare similar data type and performs the conversions for you.5 == "5" // true

NOTE: JS converts the string to a number in order to perform a meaningful comparison. (numbers had already represented in float, so perform a parseFloat() to string)

Page 19: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Comparison Operators (continue…)Operator Name Description Example (x=7,

y=5)Example result

== Is equal to Returns true if the operands are equal

x == y False

!= Is not equal to Returns true if the operands are not equal

x != y True

> Is greater than Returns true if the left operand is greater than the right operand

x > y True

>= Is greater than or equal to

Returns true if the left operand is greater than or equal to the right operand

x >= y True

Page 20: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Comparison Operators (continue…)Operator Name Description Example (x=7,

y=5)Example result

< Is less than Returns true if the left operand is less than the right operand

x < y False

<= Is less than equal to Returns true if the left operand is less than or equal to the right operand

x <= y False

=== Is equivalent to Returns true if the operands are equal and of the same data type

x === y False

!== Is not equivalent to Returns true if the operands are not equal and/or not of the same type

x !== y true

Page 21: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Logical (Boolean) Operators

• Logical operations, AKA, Boolean operations, always result in a truth value: true or false.

• The && (AND) operator: In order for an && (AND) expression to be true, both operands must be true.

• The || (OR) operator: only one side needs to be true in order for the expression to evaluate to true.

• The ! (NOT) operator: negate the expression

Page 22: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Logical OperatorsOperator Name Flavor Truth Table Example(isJS=t

rue, isMonday=false)

Result

&& AND Binary T && T = T

T && F = F

F && T = F

F && F = F

isJS && isMonday

False

|| OR Binary T || T = T

T || F = T

F || T = T

F || F = F

isJS || isMonday

True

! NOT Unary !true = false

!false = true

!isMonday true

Page 23: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

The Conditional Operator

• The conditional operator is the only JS operator that takes three operands.

• The syntax is (condition) ? ValueIfTrue : ValueIfFalse ;

var age = 38;status = (age >= 18) ? "adult" : "minor" ;

NOTE: status = "adult" ("adult" will be assigned to the variable status.)

Page 24: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

The conditional operator sample<html><head><title>conditional operator</title></head><body><h1>conditional operator</h1><script language= "JavaScript" type= "text/javascript"> alert(parseInt(prompt("what is 100 + 50?", "")) == 150 ?

"correct" : "wrong ");</script></body></html>

Page 25: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Special Operator (delete)• JS supports several special operators that you should be aware of: delete, new, this, typeof, and

void• delete operator: allows you to delete an array entry or an object from memory.• delete is a unary operator that attempts to delete property, array element, or variable specified as

its operand.• Not all variables and properties can be deleted: built-in core and client-side properties, and user-

defined variables declared with the var statement cannot be deleted.var obj = { x:1, y:2 }; // defined an objectdelete obj.x; // delete property, return truetypeof obj.x; // property not exist, undefineddelete obj.x; // nonexist property, return truedelete obj; // cannot delete var defined, return falsex = 1; // no var defineddelete x; // ok to del, not defined with var, true

• When remove an element from an array with the delete operator, JS does not collapse the array. In stead, that array element becomes undefined; any attempt to evaluate that element results in undefined.

Page 26: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Special Operator (new)• The Object-Creation Operator (new): creates a new object and invokes

a constructor function to initialize it.• It is a unary operator.

new constructor(arguments); constructor must be an expression that evaluates to a constructor

function.var obj = new Object; // omit ()var curDate = new Date();var myArray = new Array();

• If the function call has no arguments, JS allows the parentheses to be omitted

Page 27: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Special Operator (this)

• The special keyword - this is a shortcut way of referring to the current object

Page 28: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Special Operator (typeof)

• The typeof operator: is a unary operator that determines the current data type of any variable.

• The result of a typeof operation is : number, string, boolean, object, or undefined.

• typeof (operand)• Or typeof operand• NOTE: parentheses are optional. but it is considered

good programming style to use them.

Page 29: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Special Operator (void)• The void operator: is a unary operator that tells the

interpreter to evaluate an expression and returns no value (return undefined).

• The most common use for this operator is in JS Pseudo-protocol, where it allows you to evaluate an expression for its side effects without the browser displaying the value of the evaluated expression:

<a href="javascript: void window.open();">New window</a>

Page 30: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Function• A function is a block of predefined programming statements whose

execution is deferred until the function is “called”. • You call a function by invoking its name with any required or optional

parameters.• A function parameter, aka an argument, is a data value or data

reference that you can pass to the function to work on or use.function greetVisitor() {

alert("Hello");}

To call the function, <body><script language="JavaScript" type="text/javascript">

greetVisitor();</script></body>

Page 31: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Passing Parameters to Functions<html><head><title>Passing Parameters</title><script language="JavaScript" type="text/javascript">function greetVisitor(visitor) {

alert("Hello, " + visitor + "!");}</script></head><body><h1>Passing Parameters</h1><script language="JavaScript" type="text/javascript">

greetVisitor("JavaScript");</script></body></html>

Page 32: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Returning a value from a function<html><head><title>return data</title><script language="JavaScript" type="text/javascript">function calcRect(width, height) {

var area = width * height;return area;

}</script></head><body><h1>Returning a value from a function</h1><script language="JavaScript" type="text/javascript">

alert("The area of an 8x5 rectangle is: " + calcRect(8, 5));</script></body></html>

Page 33: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

The order of operationsOrder Description Operator(s)

1 Parentheses ()

2 Member of an object or an array

. []

3 Create instance new

4 Function call function()

5 Boolean NOT, negation, positive, increment, decrement, typeof, void and delete

! - + ++ -- typeof void delete

6 Multiplication, division, and modulus

* / %

7 Addition, concatenation, and subtraction

+ -

Page 34: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

The order of operationsOrder Description Operator(s)

8 Relational comparisons < <= > >=

9 Equality, inequality, equivalency, and non-equivalency

== != === !==

10 Boolean AND &&

11 Boolean OR ||

12 Conditional expression ?:

13 Assignment = += -= *= /= %=

Page 35: CNIT 133 Interactive Web Pags – JavaScript and AJAX Expression

Exercises1. 4 + 10/2 * 3 – (1 + 2) * 4 = 72. 7 + 5 + “dollars” = “12dollars”3. “dollars” + 7 + 5 = “dollars75”4. 6 + 25/5 = 115. 4 + 10 – 5 + 2 = 116. 4 + 5%3 + 7 = 137. 2 * 4 * 8 – 6 * 2 = 528. 5 * “4” = 209. 4%2 * 98 = 010. 2 * 4 + “5” = 8511. “4” – 2 = 2