JavaScript自定义函数进阶(匿名函数变量的作用域)

Posted 小魁的C世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript自定义函数进阶(匿名函数变量的作用域)相关的知识,希望对你有一定的参考价值。

 一、匿名函数

       匿名函数顾名思义就是一个没有名字的函数,这一类函数也被称为拉姆达函数,是一种使用javascript函数的强大方式,匿名函数有两种语法形式:

语法一:

(function (形式参数列表){

   语句  

})(实际参数列表);

 例:(使用语法一:求语数英三科成绩的平均分)


    <script type="text/javascript">
        (function(chinese, math, english) {
            result = (chinese + math + english) / 3;
            document.write("语文成绩是:" + chinese + ",数学成绩是:" + math + ",英语成绩是" + english + ",三科的平均分为" + result);
        })(135, 140, 145);
    </script>

实现样式:

语法二:

var  变量 =(function (形式参数列表){

   语句

} );

变量(实际参数列表);

 例:(使用语法二:求语数英三科成绩的平均分)


    <script type="text/javascript">
        var average = (function(chinese, math, english) {
            result = (chinese + math + english) / 3;
            document.write("语文成绩是:" + chinese + "分,数学成绩是:" + math + "分,英语成绩是" + english + "分,三科的平均分为" + result);
        });
        average(135, 140, 138);
    </script>

实现样式:

二、变量的作用域

     1、变量的作用域主要分为两种:全局变量和局部变量

         ··全局变量是在函数体外进行变量的声明,因此全局变量可以在任何地方,以至于在函数内部使用。

         ··局部变量则是在函数体内进行变量的声明,并且只能在函数体内使用。因此局部变量会随着函数的结束而消失。

     注意:如果全局变量和局部变量出现了重名的情况,局部变量优先,并且无论局部变量的值如何改变,全部变量的值都不会收到影响。

例:(分析下列代码中那些是全局变量,那些是局部变量)

    <script type="text/javascript">
        var money = 100; //全局变量
        function getMoney() {
            var money = 150; //局部变量
            document.write("我口袋里还有:" + money + "元"); //输出局部变量的值
        }
        getMoney();//调用getMoney函数
    </script>

实现样式:

以上是关于JavaScript自定义函数进阶(匿名函数变量的作用域)的主要内容,如果未能解决你的问题,请参考以下文章

JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用

JavaScript函数进阶回调函数递归函数闭包函数

JavaScript 函数进阶函数(匿名回调递归函数)及相关练习

javascript进阶笔记

JavaScript 函数

Spark函数式编程进阶