中易网

js函数定义方式的区别

答案:1  悬赏:70  
解决时间 2021-02-10 12:18
js函数定义方式的区别
最佳答案
在JS中函数的定义可以分为两种:
1. 函数声明
2. 函数表达式

根据你的代码,下面的代码就是函数的声明(当然另外一段代码是函数表达式):
function a (){
alert(123);
}

根据JS中的语法特性(注意哦,是js的语法特点,要记住):
在javascript函数体内(执行作用域)声明的变量,无论在函数体何处声明,它将都会被提升到函数的顶部,我们称这种现象为变量提升。 函数呢,它也有这种特性,即无论在函数体何处声明另一个函数,它将都会被提升到函数的顶部。只是采用函数表达式和函数声明所体现的函数提升的内容是有差别的:函数表达式和变量提升类似,只会提升函数的变量,不提升函数的定义;而函数声明提升时,不仅仅会提升函数的声明,函数的定义也会被提升

根据以上特性,你的代码在执行时,
function a (){
alert(123);
}
这段代码被提升到执行作用域的顶端,最开始被执行;

然后,在执行
var a =function(){

alert('234');
}
这段代码,导致该代码覆盖了前面的函数声明代码;

不信你可以做个测试:
将a()放到js代码的最顶端,可以看看会打印什么结果,此时你就明白了!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
房产税是一次性的吗? 还是每年都要交
茂名市亿裕贸易有限公司地址有知道的么?有点
40×57列竖式计算
求一部电影记得是主角开始被boss装了一身机械
什么除50等于32余19
郴州市交通运输管理处梯子岭交管站在什么地方
高考生物:2009年江苏高考第34题,有关限制酶
怎样对付学校限制网速?(和端口限制有关)
肾病综合症,服用强的松,脸的身体都胖了许多
LOL为什么我自从上了白银段就在也上不去了?
梦见一对白狐
宽25厘米深50厘米乘以90米长等于多少个立方
神州租车文化路海亚春天店这个地址在什么地方
华南师范大学转专业的问题
女主角叫米欣儿的小说
推荐资讯
玲玲批发部在什么地方啊,我要过去处理事情
麻雀和伪装者哪个好看(看回复好多人以为我在
谁用过小米手环,为什么那么贵啊
我用的win7 系统提示检测到一个硬盘问题,
梦见和爱人一起坐船
我是1990年12月24日的生日 转换成阳历生日是
新动力超市在什么地方啊,我要过去处理事情
这幅怪盗基德的画怎么画?喜欢基德的朋友进来
如下图,一个蔬菜大棚的外形是个半圆柱,两端
苹果6s怎么设置输入密码解锁屏幕不用再滑动
嘉妮缘翻译公司翻译的工资高吗?
一个骷髅头和一朵花得是什么牌子。有图。
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?