资讯专栏INFORMATION COLUMN

《JavaScript Dom编程艺术》读书笔记(四)

JellyBool / 2789人阅读

摘要:事实上,每个函数实际是一个短小的脚本。先对函数做出定义再调用是一个良好的编程习惯。可以将不同的数据传递给它们,而它们将使用这些数据去完成预定的操作。传递给函数的数据称为参数。这个例子中,变量的值将是,这个数值由函数返回。

函数

如果需要多次使用同一段代码,可以把它们封装成一个函数。函数就是一组允许在你的代码里随时调用的语句。事实上,每个函数实际是一个短小的脚本。

先对函数做出定义再调用是一个良好的编程习惯。下面是一个简单的示例函数:

function shout() {
    var beatles = Array("John","Paul","George","Ringo");
    for (var count = 0; count < beatles.length; count++ ) {
        alert(beatles[count]);
    }
}

这个函数里的循环语句将依次弹出对话框来显示Beatles乐队成员的名字。如果想在自己的脚本里执行这一动作,可以随时使用如下的语句来调用这个函数:

shout();

每当需要反复做一件事,都可以利用函数来避免重复键入大量的相同内容。可以将不同的数据传递给它们,而它们将使用这些数据去完成预定的操作。传递给函数的数据称为参数(argument)。

定义一个函数的语法:

function name(arguments) {
    statements;
}

JavaScript提供了许多内建函数,在前面多次出现过的alert就是一例。这个函数需要我们提供一个参数,它将弹出一个对话框来显示这个参数的值。

在定义函数时,可以为它声明任意多个参数,只要用逗号把它们分隔开来就行。在函数额内部,你可以像使用普通变量那样使用它的任何一个参数。

下面是一个需要传递两个参数的函数。如果把两个数值传递给这个函数,这个函数将对它们进行乘法运算:

function multiply(num1,num2) {
    vartotal = num1 * num2;
    alert(total);        
}

在定义了这个函数的脚本里,我们可以从任意位置去调用这个函数,如下所示:

multiply(10,2);

屏幕上会立刻弹出一个显示乘法运算结果(20)的alert对话框。函数不仅能够(以参数的形式)接收数据,还能够返回数据。

可以创建一个函数并让它返回一个数值、一个字符串、一个数组或一个布尔值。这需要用到return语句:

function multiply(num1,num2) {
    var total = num1 * num2;
    return total;
}

下面这个函数只有一个参数(一个华氏温度值),它将返回一个数值(同一温度的摄氏温度值):

function converToCelsius(temp) {
    var result = temp - 32;
    result = result / 1.8;
    return result;
}

还可以把函数当做一种数据类型来使用,这意味着可以把一个函数的调用结果赋给一个变量:

var temo_fahrenheit = 95;
var temp_celsius = convertToCelsius(temp_fahrenheit);
alert(temp_celsius);

把华氏温度值95转换为摄氏温度值。这个例子中,变量temp_celsius的值将是35,这个数值由convertToCelsius函数返回。

变量的作用域

比如下面这个例子:

function square(num) {
    total = num * num;
    return total;
}
var total = 50;
var number = square(20);
alert(total);

全局变量total的值变成了400。本意是让square()函数只把它计算出来的平方值返回给变量number,但因为未把这个函数内部的total变量明确地声明为局部变量,这个函数把名字同样是total的那个全局变量的值也改变了。

把这个函数写成如下所示的样子才是正确的:

function square(num) {
    var total = num * num;
    return total;
}

现在,全局变量total变得安全了,再怎么调用square()函数也不会影响到它、

请记住,函数在行为方面应该像一个自给自足的脚本,在定义一个函数式,一定要把它内部的变量全部明确地声明为局部变量。如果你总是在函数里使用var关键字来定义变量,就能避免任何形式的二次定义隐患。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79560.html

相关文章

  • JavaScript Dom编程艺术读书笔记(三)

    摘要:也就是说,仍将看到一条消息。这些语句执行完毕后,变量的值将是,尽管循环控制条件的求值结果是。循环最常见的用途之一是对某个数组里的全体元素进行遍历处理。变量对于数组中每个元素都是从开始按递增。 循环语句 if语句唯一的不足是无法完成重复性的操作。在if语句里,包含在花括号里的代码块只能执行一次。如果需要多次执行同一个代码块,就必须使用循环语句。 while循环 while循环与if语句非...

    xbynet 评论0 收藏0
  • JavaScript Dom编程艺术读书笔记(二)

    摘要:逻辑非操作符只能作用于单个逻辑操作数,其结果是把那个逻辑操作数所返回的布尔值取反。如果那个逻辑操作数所返回的布尔值是,逻辑非操作符将把它取反为为了避免产生歧义,上面这条语句把逻辑操作数放在了括号里,使逻辑非操作符作用于括号里的所有内容。 算术操作符 加减乘除这些算术操作中的每一种都必须借助于相应的操作符才能完成。操作符是JavaScript为完成各种操作而定义的一些符号。等号(=)、加...

    caspar 评论0 收藏0
  • JavaScript Dom编程艺术读书笔记(二)

    摘要:逻辑非操作符只能作用于单个逻辑操作数,其结果是把那个逻辑操作数所返回的布尔值取反。如果那个逻辑操作数所返回的布尔值是,逻辑非操作符将把它取反为为了避免产生歧义,上面这条语句把逻辑操作数放在了括号里,使逻辑非操作符作用于括号里的所有内容。 算术操作符 加减乘除这些算术操作中的每一种都必须借助于相应的操作符才能完成。操作符是JavaScript为完成各种操作而定义的一些符号。等号(=)、加...

    xingpingz 评论0 收藏0
  • JavaScript Dom编程艺术读书笔记(二)

    摘要:逻辑非操作符只能作用于单个逻辑操作数,其结果是把那个逻辑操作数所返回的布尔值取反。如果那个逻辑操作数所返回的布尔值是,逻辑非操作符将把它取反为为了避免产生歧义,上面这条语句把逻辑操作数放在了括号里,使逻辑非操作符作用于括号里的所有内容。 算术操作符 加减乘除这些算术操作中的每一种都必须借助于相应的操作符才能完成。操作符是JavaScript为完成各种操作而定义的一些符号。等号(=)、加...

    Aceyclee 评论0 收藏0
  • JavaScript Dom编程艺术读书笔记(一)

    摘要:下面这条语句将导致语法错误变量名允许包含字母数字美元符号和下划线但第一个字符不允许是数字。可以把一些布尔值存入一个数组,还可以把一组数值存入一个数组甚至可以把这种数据类型混在一起存入一个数组数组元素还可以是变量这将把数组的第一个元素赋值为。 执行Javascript的方式 第一种方式是将JS代码放到 < head > 标签中的 < script > 标签之间: ...

    lewinlee 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<