JS 没有块级作用域

在函数(方法)中声明的所有变量,他们在整个函数中都有定义

var scope="abc";

function f() {

  alert(scope);  //显示undefine

  var scope="local";

  alert(scope); //显示local

原因:由于作用域规则的限制,输出的并不是abc。由于局部变量在真个函数体内都是有定义的,这就意味这在真个函数题中都隐藏了同名的全局变量

上面的例子和下面的效果相同:

function f() {

  var scope;

  alert(scope);  //显示undefine  因为该变量虽然声明但没有初始化。

  var scope="local";

  alert(scope); //显示local

上一篇:Win10重命名文件夹导致资源管理器卡顿的解决办法


下一篇:运行tomcat7w.exe提示指定的服务未安装 解决办法