JavaScript两种函数声明的区别

//1.函数声明
var functionName = function(){
      alert("1");
}
//2.函数表达式
function functionName(){
       alert("2");
}

//现在调用这个方法
functionName();


弹出的结果是什么呢?

是 2 吗?


如果你觉的是 2 ,那就错了,答案应该是1

再来看一下下边这个弹出的结果是什么?

//现在调用这个方法
functionName();

//1.函数声明
var functionName = function(){
      alert("1");
}
//2.函数表达式
function functionName(){
       alert("2");
}


这个的结果应该是2
做一下总结吧!

上边所展示给我们的特点是函数表达式明显区别于函数声明的地方。  

解释器在解析JavaScript代码时对于这两种方式并不是一视同仁的。解释器会首先读取函数声明,并使其在执行任何代码之前可用;而对于函数表达式,则必须等到解释器执行到它所在的代码行,才会被真正解析执行。

所以第一题中的2先被解释器读取,然后在执行时又读到了1,于是就把之前的2给覆盖了。


第二题也展示给我们了,无论函数声明放在哪里,JavaScript引擎也会把函数声明放到顶部;而函数表达式,只有在代码执行阶段才能把函数体赋值给 函数名,然后才能调用。


这个解释器究竟是干啥的呢?我觉得自己也有必要深入了解一下了,希望有看到文章的朋友们,有熟悉的可以一起交流分享一下,加油吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值