您的位置:首页 > Web前端 > JavaScript

JavaScript两种函数声明的区别

2017-09-16 21:31 155 查看
//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引擎也会把函数声明放到顶部;而函数表达式,只有在代码执行阶段才能把函数体赋值给 函数名,然后才能调用。

这个解释器究竟是干啥的呢?我觉得自己也有必要深入了解一下了,希望有看到文章的朋友们,有熟悉的可以一起交流分享一下,加油吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐