functionfun(){ var c =1 functionfun2(){ //函数才有块级作用域,在该作用域内,找到了c那么就不会再往外找了 console.log(c) //undefined var c = 2 console.log(c) //2 } fun2() console.log(c) //1 } fun()
考题2:
1 2 3 4 5 6 7 8 9 10
var name ='a'; (function (){ //var name =undefined; if( typeof name == 'undefined'){ var name = 'b'; console.log('111'+name); }else{ console.log('222'+name); } })() //输出结果为111b
考题3:
1 2 3 4 5
console.log(a); if(false){ //不执行下面语句,只是不赋值,但是a会变量提升 var a = 10; } console.log(a); //都输出undefined
考题4:(对应作用域变量优先级)
1 2 3 4 5 6 7 8
functionfun(a){ var a = 10; functiona(){} console.log(a); } fun(100); //打印的是10,声明变量 > 声明普通函数 > 参数 > 变量提升