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。

  • 相关阅读:
    爬虫_requests
    第十四周总结
    《三个和尚》观看感悟
    第十三周总结
    ThinkPHP
    ThinkPHP配置安装
    ThinkPHP_1
    构建之法阅读笔记六
    网络工程师必备学习内容!深度理解OSPF——OSPF是什么?为什么要用OSPF?
    网络工程师学习笔记——RIP路由汇总实验配置
  • 原文地址:https://www.cnblogs.com/yansj1997/p/2563689.html
Copyright © 2011-2022 走看看