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。這邊的執行結果不是很理解,詞法作用域和變量提升的理不清!
js 調用的位置不同到得不同的結果,why?
千巷貓影
2018-10-10 22:15:23