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。

  • 相关阅读:
    MoSQL
    Open Search Server 1.4 Beta3 发布
    NxWidgets 1.5 发布,NuttX的GUI开发包
    segatex 7.900 发布,SELinux 策略编辑器
    MySQL Connector/ODBC 5.2.4 发布
    Phing 2.5 发布,PHP 项目构建工具
    SwingX 1.6.5 发布,GUI 工具包
    XWiki 4.4.1 发布,Java 的 Wiki 引擎
    流言终结者——C语言内存管理
    Hudson 3.0 正式版发布,持续集成引擎
  • 原文地址:https://www.cnblogs.com/yansj1997/p/2563689.html
Copyright © 2011-2022 走看看