【JavaScript】函数

背景提要

      如果你需要多次使用同一段代码,为了提高效率,你会怎么做呢?答案就是题目——函数,把代码们封装成一个函数。函数(function)就是一组允许在你的代码里随时调用的语句。每个函数实际上是一个短小的脚本。

良好编程习惯——定义

      作为一种良好的编程习惯,应该先对函数用 function 做出定义再进行调用,大家要谨记哦。
看例子:↓

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

      上面的函数的循环语句,将依次弹出对话框来显示Beatles乐队成员的名字。现在,如果想在自己的脚本里执行这一动作,就使用 shout() 来调用这个函数就OK啦。

参数

      函数不仅仅是避免重复键入大量相同的内容,函数的威力也体现在,你可以把不同的数据传递给它们,而它们将使用这些数据去完成预定的操作。我们把传递给函数的数据叫做参数(argument)。

      JavaScript提供了很多内建函数,出镜率很高的 alert 就是其中之一。这个alert函数需要我们提供一个参数,它将弹出一个对话框来显示这个参数的值。

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

      看看下面这个含有两个参数的例子。↓

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

      在定义了上面函数的脚本里,你可以从任意位置调用它。看下面如何调用。

 multiply(10,20);    //把10和20两个参数传递给multiply()函数的结果就是 200。

     显示在页面上的效果就是一个 显示 200的对话框。

这里写图片描述

     函数不仅可以像上面那样以参数的形式接收数据,还能够返回数据,可以返回一个数值,一个字符串,一个数组或者一个布尔值。这时候就要用到return 语句。

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

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

function convertToCelsius(temp )   //华氏温度转换为摄氏温度的函数
{
    var result=temp -32;
    result=result/1.8;
    return result;

}

真正价值体现!

     上面说到了函数的参数,返回语句,冥冥中觉得JavaScript的函数应该更厉害。函数的真正体现就是,我们可以把函数当做一种数据类型来用,就是可以把函数的调用结果赋给一个变量。

    var temp_fahrenherit=95;      //华氏摄氏度为95度
    var temp_celsius=convertToCelsius(temp_fahrenherit);    //调用华氏温度转摄氏温度的函数,并把结果赋给变量
    alert(temp_celsius);  

     上面这个例子里,你肯定发现了变量的命名和函数命名的区别了吧!在命名变量的时候,我们用下划线来分隔各个单词。命名函数的时候,从第二个单词开始把每个单词的首字母大写,也就是驼峰表示法。

     这么做的目的,显而易见,我们可以一眼看出哪个是变量,哪个是函数。JavaScript不允许变量和函数命名中出现空格,所以,驼峰可以在不违法这一规定的前提下,把变量和函数的名字以一种简单的方式区别开来。

变量作用域

     前面我们提到有一个好的编程习惯就是给函数命名,所以在你第一次给变量赋值的时候也要用var做出声明当你在函数内部使用变量的时候,更应该如此。

     变量分为两大类,全局变量,局部变量。讨论它们区别的时候,其实就是在讨论变量的作用域。

     全局变量(global variable)可以在脚本的任何位置被引用。脚本的任何位置当然也包括函数的内部。

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

     刚刚提到的var关键字在此时就发挥作用了,如果某个函数中使用 var关键字命名变量,那么变量就被视为局部变量。如果没有使用var 就被视为一个全局变量。如果脚本里已经存在一个同名的全局变量,那么函数里的全局变量就会改变脚本中已存在的那个全局变量的值。
     解释起来很热闹,看看例子更清晰一点:

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

     上面的square函数中就隐藏了一个没有用关键字 var 命名的变量——total。本来我只是想让square()函数把它计算出来的平方值返回给变量number,但是因为没有把square()函数内部的total变量明确的定义为局部变量,结果函数内部的变量就把函数外部同样命名为total的全局变量值也改变了。

     把函数中的total变量定义为局部,就可以保证全局变量total的安全啦!

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

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

小结

      今天简单复习了对于JavaScript的函数知识,希望可以给你带来一些收获~~下次见

评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值