function add() { console.info(a, b, c);// 1 2 9}var a = 1, b = 2, c = 9; add();
add();function add() { console.info(a, b, c);//undefined undefined undefined } var a = 1, b = 2, c = 9;
function add() { console.info(a, b, c);//undefined undefined undefined }add();var a = 1, b = 2, c = 9;
第一段代码按照Java的语法,应该是变量在申明在前面,后面的函数才能拿到值的,如果按照JavaScript变量提升的话,第一段代码拿到的也应该是undefined。
这边的执行结果不是很理解,词法作用域和变量提升的理不清!
相关分类