zoukankan      html  css  js  c++  java
  • JavaScript程序开发(十四)—函数声明与函数表达式

    函数声明和函数表达式虽然都是在声明一个函数,但是二者有区别,解析器对二者的解析并非是一视同仁的。解析器会率先解析读取函数声明,并使其可以在执行任何代码前可用(可以访问);至于函数表达式,则必须等到解析器解析执行到它所在的行,才会被真正解释执行,才可被使用。如下代码所示:

    <script type="text/javascript">
        alert(add(2,3));
        function add(a,b){
            return a+b;
        }
    </script>

    该段代码可以正常执行,因为add(a,b)是一个函数声明,解析器可以在任何地方解析执行这个函数。而下面的代码:

    <script type="text/javascript">
        alert(2,3);
        var sum = function(a,b){
            return a+b;
        }
    </script>

    这段代码虽然也有输出,有执行,但并不是正确的执行了预期的功能。因为这段代码是一个函数表达式,必须确保解析器执行到了声明函数的这一行,才能被正确的调用,所以是本段代码是没有被正确执行的。

    还有一个小的知识点,就是作为值的函数,如果要访问的是函数的指针,而不是执行函数的话,那么久必须去掉函数后面的那对圆括号。如下代码:

    <script type="text/javascript">
        function callSomeFunction(someFunction,someArguments){
            return someFunction(someArguments);
        }
        
        function add10(num){
            return num+=10;
        }
        
        var result1 = callSomeFunction(add10,10);
        document.write(result1+"<br />");
        var result2 = add10(10);
        document.write(result2+"<br />");
    </script>

    传递给callSomeFunction的add10。

  • 相关阅读:
    6、方法
    5、封装
    4、循环
    3、判断
    2、基本语法
    1、基本框架
    CodeForces 681C Heap Operations(模拟)
    CodeForces 682C Alyona and the Tree(广搜 + 技巧)
    URAL 2099 Space Invader题解 (计算几何)
    HDU 5833 (2016大学生网络预选赛) Zhu and 772002(高斯消元求齐次方程的秩)
  • 原文地址:https://www.cnblogs.com/yansj1997/p/2563689.html
Copyright © 2011-2022 走看看