JavaScript中没有块级作用域程序举例例证

	
 
       
 第一个script里面可以输出10,在变量解析过程中首先查找局部的作用域,然后查找上层作用域。在代码一的函数当中没有定义变量i,于是查找上层作用域(全局作用域),进而进行输出其值。但是在代码二的函数内定义了变量i(无论是在alter之后还是之前定义变量,都认为在此作用域拥有变量i),于是不再向上层的作用域进行查找,直接输出i。但是不幸的是此时的局部变量i并没有赋值,所以输出的是undefined。 
  

《JavaScript权威指南》中提出的“没有块级作用域”实际上就是上述的意思。


你可能感兴趣的:(JavaScript)