[ 第二章] JavaScript 语法(六) 函数

2.6 函数


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

  作为一个良好的编程习惯,应该先对函数定义再调用它们。

  一面是一个简单的示例函数:

  

function shout(){
    var beatles = Array('Any','Bob','Cc','Dana','Eno');
    for(var i=0; i < beatles.length; i++){
         alert(beatles[i]);
    }
}

// 这个函数里的语句将依次弹出 beatles 中的四个名字,现在如果想要在自己的脚本里执行这一动作,可以随时使用如下语句来调用这个函数:

shout();

  每当需要反复做一件事情时,都可以利用函数来避免重复键入大量的相同内容。不过,函数的最大威力体现在,你可以把不同的数据传递给它们,而它们用这些数据去完成预定的操作。我们把传递过去的数据称为 参数 ( arguments ).

  定义一个函数的语法:

  function name(arguments){

        statements;

      }

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

  下面定义一个用来完成 两个数值乘积的函数 :
   

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

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

multiply(10, 20 );  //  200

 函数不仅能够接收数据,而且能够返回数据。

我们完全可以定义一个函数并让它返回一个数值,一个字符串,一个布尔值。这需要我们用到 return 语句;

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

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

var aa=multiply(10, 20 ); 
alert(aa) ;                               //  200

变量的作用域

前面说过,作为一个良好的编程习惯,在第一次使用某个变量赋值时应该使用 var 对其做出声明。当函数内部使用时就更应该这么做了。变量可以是全局的,也可以是局部的。在谈论全局变量和局部变量的区别时,我们算是在讨论变量的作用域 ( scope ).

  全局变量(global variable )可以在脚本的任意位置引用它们。全局变量的作用域是整个脚本。

  局部变量( local variable )只在于声明它的那个函数内部,在那个函数的外部是无法引用的。局部变量仅限于某个特定的函数。

  用 var 关键字可以明确地为函数指定作用域

  

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

var total = 50;
var number = square(20);
alert(total);            // 400


// 我们希望得到的值是 50 ,但函数内部定义变量 total 未使用var 导致total 全局有效,所以覆盖了 total =50 这条赋值语句的赋值
// 这里将函数重写如下
function square(num){
    var total = num*num;
    return total;
}
var total=50;
var number=quare(20);
alert(total);              // 50

   

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

天才在于积累,聪明在于勤奋!
原文地址:https://www.cnblogs.com/zhaoxiaowu/p/3677876.html