您的当前位置:首页javascript函数声明与函数表达式的区别

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

2024-12-09 来源:哗拓教育

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”(意外标识符)错误,实际上也不会执行到下一行

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

显示全文