js 调用的位置不同到得不同的结果,why?

1. 调用在最下面

function add() {    console.info(a, b, c);// 1 2 9}var a = 1, b = 2, c = 9;
add();

2. 调用在最上面

add();function add() {    console.info(a, b, c);//undefined undefined undefined
}
var a = 1, b = 2, c = 9;

3. 调用在中间

function add() {
    console.info(a, b, c);//undefined undefined undefined
}add();var a = 1, b = 2, c = 9;

第一段代码按照Java的语法,应该是变量在申明在前面,后面的函数才能拿到值的,如果按照JavaScript变量提升的话,第一段代码拿到的也应该是undefined。

这边的执行结果不是很理解,词法作用域和变量提升的理不清!


千巷猫影
浏览 533回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript