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

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,906评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,123评论 25 709
  • “六点到就行。” 我挂掉电话,向主楼走去。 差不多是秋末了,天凉的厉害,白日的时间也缩短了,虽然才五点半,天已将要...
    钱迁阅读 1,567评论 0 0
  • 文/刘小刘 我爱跳广场舞。说完这句话,都不用猜,我就知道,我肯定会被烙上一个退休老大妈的烙印,洗都洗不掉。然而,让...
    南贝叶阅读 2,713评论 0 2
  • 这个阳光明媚的冬日午后,寝室一点睡觉的气氛都没有,连电脑上也没有想玩的东西,索性就做了一直想做的事,去租了一...
    汪铭珠阅读 3,754评论 1 3

友情链接更多精彩内容