Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
3 views

IT350_set9_JavaScriptFunctions

Uploaded by

tazvitya Mapfumo
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

IT350_set9_JavaScriptFunctions

Uploaded by

tazvitya Mapfumo
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

IT350 Web and Internet Programming

Fall 2007
SlideSet #9: JavaScript Functions

(from Chapter 10 of the text)


Function Definitions
• Syntax and terminology:
function function-name( parameter-list )
{
declarations and statements
}
• Example
/* Return an integer no larger than ‘max’ */
function getIntegerWithMax(max) {
var value;
do {
value = window.prompt(
"Please enter an integer no larger than "+max);
} while (value > max);
return value;
}
Function Invocation

• Built-in functions

• User-defined functions

Arguments are passed ______________, so original


values in caller are ________________
Scope – Where is a variable visible in the program?
function dog(g) {
h = 3;
var sum = g+h;
document.write("<br/> Sum is: "+sum);
}

g = 7;
h = 5;

document.writeln("<br/> g: "+g+" h: "+h);


dog(g);
document.writeln("<br/> g: "+g+" h: "+h);
document.writeln("<br/> sum: "+sum);

Output?
JavaScript Scope Rules

• Variables declared inside a function:


– Explicitly (with var)
– Implicitly (just used)
– Parameters
(Look at FIRST USE inside a function to decide which applies)

• Variables declared outside a function:


– Explicitly
– Implicitly
Exercise #1 – Write a function that takes two
arguments and returns the minimum of the two
Exercise #2 – What’s the output?
function fun1 (x) {
x = x + 3;
y = y + 4;
document.writeln("<br/> FUN1: "+x+ "," +y);
}

function fun2 () {
var y;
x = x + 10;
y = y + 20;
document.writeln("<br/> FUN2: "+x+ "," +y);
}

x = 1;
y = 2;

document.writeln("<br/> MAIN #1: "+x+ "," +y);


fun1(x);
document.writeln("<br/> MAIN #2: "+x+ "," +y);
fun1(y);
document.writeln("<br/> MAIN #3: "+x+ "," +y);
fun2();
document.writeln("<br/> MAIN #4: "+x+ "," +y);
Exercise #3 – Write a function indentPrint(N, str1, str2) that
outputs the following:
a.) ‘N’ dashes, followed by the string ‘str1’, then <br/>
b.) ‘N’ dashes, followed by the string ‘str2’, then <br/>
Use document.write() for output. You can assume N is an integer.
Exercise #4
1. What point(s) are strange about the following code?
2. Will each cause a syntax error, logic error, or neither?
3. Fix the average function so that it correctly calculates both requested
averages.
4. (a stretch) Do #3 without changing the function header.

function average(x, y, z) {
return (x + y + z) / 3;
}

document.write("<br/> avg2:" +average(3, 9));


document.write("<br/> avg1:" +average(10, 20, 30, 40));
Connecting JavaScript and XHTML

• Where to place the JavaScript


– In the .html file

– In a separate file
<script type = “text/javascript” src = “calc.js” />

• How to invoke the script?


– Place non-function code in the <head>
– <body onload=“start()”>

– <input type = "button" value = “Roll"


onclick = "play()" />
JavaScript Secrets

• Invalid numbers are NaN


– Test with isNaN(value)
• 5 types for variables:
– number (including NaN)
– string
– boolean
– “undefined” – may cause error or lead to NaN
– null
• Gotchas
– color = red;
– if (x = 7) …
– Uninitialized variables
– Forgetting “break” in switch
JavaScript Tips

• Quoting
document.writeln("<a href=\"cat.html\">cat</a>");
vs.
document.writeln("<a href='cat.html'>cat</a>");

• Multiple arguments to document.write()


document.writeln("<h1>"+heading+"</h1>");

document.writeln("<h1>",heading,"</h1>");

(doesn’t work with my_writeln() )

You might also like