ES5中,JavaScript只能通过函数来创建词法作用域(不是动态作用域)词法作用域就是代码写完,作用域就已经构建好了,如下面的案例一案例一varnum=10;functiontest(){console.log(num);}functiontest1(){varnum=100;test();}test1();//10案例二中该怎么解释一定要执行test()才不会报错呢,不是应该像案例一那样在函数执行前就已经进行了变量提升了吗案例二console.log(a);functiontest(){a=1;}test();//必须执行才能打印undefined否则报错
HUWWW
相关分类