JavaScript脚本特效编程给力起飞
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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 带参函数