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
We take content rights seriously. If you suspect this is your content, claim it here.
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
We take content rights seriously. If you suspect this is your content, claim it here.
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