美文网首页
javascript函数声明与函数表达式的区别

javascript函数声明与函数表达式的区别

作者: 楠小忎 | 来源:发表于2017-12-12 14:38 被阅读16次

    javascript 函数声明与函数表达式的区别

    • 就一点,函数声明有函数声明提升效果,可以在定义之前就引用,而函数表达式必须先赋值然后引用

    • 解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问);至于函数表达式,则必须等待解析器执行到它所在的代码行,才会被解释执行

    alert(sum(10,10));
    function sum(a, b) {
        return a + b;
    }
    
    • 以上代码完全可以正常运行。因为在代码开始执行之前,解析器就已经通过一个名为函数声明提升的过程,读取并将函数声明添加到执行环境中。对代码代码求值时,JavaScript引擎在第一遍会声明函数并将它们放到源代码树的顶部。所以,即使声明函数的代码在调用他的代码后面,JavaScript引擎也能把函数声明提升到顶部。
    alert(sum(10,10));
    var sum = function(num1, num2){
        return num1 + num2;
    };
    
    • 以上代码报错“undefined”,因为在执行到函数所在的语句之前,变量sum中不会保存有对函数的引用,而且,由于第一个行代码就会导致“unexpected identifier”(意外标识符)错误,实际上也不会执行到下一行

    • 除了什么时候可以通过变量访问函数这一点区别外,函数声明与函数表达式的语法其实是等效的

    相关文章

      网友评论

          本文标题:javascript函数声明与函数表达式的区别

          本文链接:https://www.haomeiwen.com/subject/dwfnixtx.html