2.2 函数
函数将若干操作合并在一个名字下,这样就可以简化代码。可以编写一组语句,为其命名,然后通过调用该语句组并为其传递所需的信息,根据需要随时执行整个语句组。
给函数传递信息的方式是在函数名后用圆括号将信息括起来。要传递给某个函数的信息的各部分被称为参数。有些函数不需要任何参数,有些函数可能要带一个参数,有些可能有多个,甚至有一些函数的参数个数取决于使用该函数的方式。
JavaScript支持两种函数:在语言中内置的函数,以及自己创建的函数。
2.2.1 特殊的内置函数
JavaScript语言中包括若干内置的函数。有些可以用来处理表达式和特殊字符,以及将字符串转换为数值。还记得上一章中所学习的alert吗?那就是一个内置函数。
JavaScript常规函数包括以下8个:
■ alert函数:显示一个警告对话框,包括一个“OK”按钮。
■ confirm函数:显示一个确认对话框,包括“OK”、“Cancel”按钮。
■ escape函数:将字符转换成Unicode码。
■ eval函数:计算表达式的结果。
■ parseFloat函数:将字符串转换成浮点数字形式。
■ parseInt函数:将字符串转换成整数数字形式(可指定是几进制)。
■ prompt函数:显示一个输入对话框,提示等待用户输入。
■ unescape函数:解码由escape函数编码的字符。
alert函数在上一章中已给大家介绍过,confirm函数、prompt函数、parseFloat函数和parseInt函数将在第3章中做具体的讲解。下面针对escape函数、unescape函数和eval函数给大家做一个介绍。
1. escape函数
■ 描述
对String对象编码以便它们能在所有计算机上可读。
■ 语法
escape(charstring)
charstring参数是要编码的String对象。
■ 说明
escape返回一个包含了charstring内容的新的String对象( Unicode格式),所有空格、标点、重音符号以及其他非ASCII字符都用%xx编码代替,其中xx等于表示该字符的十六进制数。例如,空格返回的是“%20”。
字符的值大于255的用 %u xxxx格式存储。
2. unescape函数
■ 描述
解码用escape方法进行了编码的String对象。
■ 语法
unescape(charstring)
charstring参数是要解码的String对象。
■ 说明
unescape方法返回保存了charstring内容新的String对象。所有以%xx十六进制形式编码的字符都用ASCII字符集中等价的字符代替。
以%u xxxx格式(Unicode字符)编码的字符用十六进制编码xxxx的Unicode字符代替。
3. eval函数
■ 描述
检查JScript代码并执行。
■ 语法
eval(codestring)
codestring参数是包含有效JScript代码的String对象。这个字符串将由JScript分析器进行分析和执行。
■ 说明
eval函数允许JScript源代码的动态执行。例如,下面的代码创建了一个包含Date对象的新变量mydate:
eval("var mydate = new Date();");
传递给eval方法的代码执行时的上下文和调用eval方法的一样。
2.2.2 创建自己的函数
可以创建自己的函数并在需要的地方使用。一个函数定义由一个function语句和一个JavaScript语句块组成。
无参函数定义格式:
function函数名() { 函数代码; }
例2-15
function add () { sum = 1 + 2; alert(sum); }
函数定义好了,如何调用呢?
其实可以通过很多种方法调用上面的函数,这里使用最简单的函数调用方式 —— 按钮的单击事件(JavaScript事件会在后面介绍)。试着单击下面的按钮(),就会调用定义好的函数add,显示结果为3,如图2-14所示。
图2-14 自定义函数
代码如下:
<html> <head> <TITLE>加法</TITLE> <script type="text/javascript"> function add () { sum = 1 + 2; alert(sum); } </script> </head> <body > <p> <button value="sum" onclick="add()">点击按钮</button> </p> </body> </html>
带参函数格式:
function函数名(参数1,参数2,参数3,…)
{
函数代码;
}
function add (x,y)
{
sum = x + y;
alert(sum);
}
例2-16
x和y是add函数的两个参数,调用函数的时候,可以通过这两个参数把两个加数传递给函数。例如,add (3,4)会求3+4的和。下面我们看看例2-17。
例2-17
<html> <head> <script type="text/javascript"> function myfunction(x,y) { sum=x+y; alert(sum); } </script> </head> <body> <form> <input type="button" onclick="myfunction(3,4)" value="点击按钮"> </form> </body> </html>
结果显示如图2-15。
图2-15 带参函数