SHARE
Facebook X Pinterest WhatsApp

Writing Your Own JavaScript Functions Part 2

Jan 16, 2007

Using More Than One Parameter

This article is excerpted from Chapter 6 of The Book of JavaScript with permission from No Starch Press

Sometimes you want to change more than one thing each time you call a function. The built-in JavaScript function prompt(), for example, can change two sets of words: the words that appear above the text box and those that appear within it. When we call prompt() as follows, we pass in two parameters, separated by a comma:



var the_answer = prompt(“What’s your favorite color?”,”yellow?”);



The method window.open(), discussed in the last chapter, provides an example of three parameters: the URL you want to open inside the window, the name of the window, and the window

s features.



The functions you write can also take more than one parameter. Let’s say you want to write a function to display a web page in a square window. You might write a function that finds the name of the page and the length of one of the sides of a window. Figure 6-7 shows you what this would look like.



<html>
<head>
<title>Square Windows</title>
<script type = “text/javascript”>
<!– hide me from older browsers
X function openSquareWindow(the_url, the_length)
{  var the_features = “width=” + the_length + “,height=” + the_length;  
var the_window = window.open(the_url, “”, the_features);
}// show me –>
</script>
</head>
<body>
Y <a href = “#” onClick = “openSquareWindow(‘http://www.webmonkey.com/’, 400); return false;”>
Open the Webmonkey home page in a big square window</a><br>
<a href = “#” onClick = “openSquareWindow(‘http://www.nostarch.com/’, 100); return false;”>
Open the No Starch Press home page in a small square window</a><br>
</body>
</html>



Figure 6-7: Writing functions that take more than one parameter


Notice that in X two variables now appear between the parentheses following the function name: the_url and the_length. In Y we’re calling the function as we would call prompt(), with two parameters separated by a comma. Calling the function sets the first variable in the function definition to the first parameter, so in the case of Y, the_url is set to http://www.webmonkey.com/. Similarly, the second variable in the function definition is set to the second parameter in the function call. If we call the function as in Y, the_length is set to 400. Figure 6-8 depicts the results of calling functions with two parameters.

Advertisement

Function Definition



function openSquareWindow(the_url, the_length){
var the_features = “width=” + the_length + “,height=” + the_length, var the_window = window.open(the_url, “”, the_features);
}


Function Call



openSquareWindow(‘http://www.webmonkey.com/’, 400);



Figure 6-8: Calling functions with two parameters

Getting Information from Functions

You can also write functions that give information back to you. Consider the prompt() function:



var the_answer = prompt(“What’s your name?”,”Ishmael”);



When a user types his or her name into the prompt box and clicks OK, the name goes into the variable the_answer. In programming parlance, you

d say that the function prompt() returns the words typed into the prompt box. The functions you write can return values as well. Figure 6-9 shows a very simple example of how to make a function return values.




<html>
<head>
<title>Date Printer</title>
<script type = “text/javascript”>
<!– hide me from older browsers
function getNiceDate()
Writing Your Own JavaScript Functions 91
{
var now = new Date();
var the_month = now.getMonth() + 1;
// remember, January is month 0
var the_day = now.getDate();
var the_year = now.getYear();
Xvar the_nice_date = the_month + “/” + the_day + “/” + the_year; Yreturn the_nice_date;
}
// show me –>
</script>
</head>
<body>
Hello! Today is
<script type = “text/javascript”>
<!– hide me from older browsers
Z var today = getNiceDate();
document.write(today);
// show me –>
</script>
</head>
</body>
</html>



Figure 6-9: A script with a simple function that returns a value
Advertisement

Line-by-Line Analysis of Figure 6-9

Most of the function should be familiar by now. The first four lines create a new Date object and carry out a few method calls to get information from that object. Line X takes the information gathered and creates a nicely formatted date. Notice that the line is



var the_nice_date = the_month + “/” + the_day + “/” + the_year;
and not
var the_nice_date = “the_month/the_day/the_year”;



The latter won

t work, because JavaScript won

t recognize the_month, the_day, or the_year as variables if they appear inside quotes. The correct version of this line takes the variables out of the quotes and puts them together with slashes using the plus (+) sign. In the incorrect version, the quotation marks stop JavaScript from interpreting the names as variables, so the web page would display Hello! Today is the_month/the_day/ the_year. Line Y tells JavaScript to exit the function and return the value of the_nice_date to whatever variable is waiting for it. In this case, the variable is today in Z. Whenever JavaScript sees the word return in a function, it exits the function and outputs whatever value comes after return.




Figure 6-10


Line Z calls the function getNiceDate(),
which returns a nicely formatted date.
The code document.write(today) then
puts the date on the web page, as shown
in Figure 6-10 above.

Recommended for you...

The Revolutionary ES6 Rest and Spread Operators
Rob Gravelle
Aug 23, 2022
Ahead of Time (AOT) Compilation in Angular
Tariq Siddiqui
Aug 16, 2022
Converting a JavaScript Object to a String
Rob Gravelle
Aug 14, 2022
Understanding Primitive Type Coercion in JavaScript
Rob Gravelle
Jul 28, 2022
HTML Goodies Logo

The original home of HTML tutorials. HTMLGoodies is a website dedicated to publishing tutorials that cover every aspect of being a web developer. We cover programming and web development tutorials on languages and technologies such as HTML, JavaScript, and CSS. In addition, our articles cover web frameworks like Angular and React.JS, as well as popular Content Management Systems (CMS) that include WordPress, Drupal, and Joomla. Website development platforms like Shopify, Squarespace, and Wix are also featured. Topics related to solid web design and Internet Marketing also find a home on HTMLGoodies, as we discuss UX/UI Design, Search Engine Optimization (SEO), and web dev best practices.

Property of TechnologyAdvice. © 2025 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.