愿天天向上,愿学以致用,愿掌握生活

javascript (无块级作用域)

上一篇 / 下一篇  2007-10-29 16:35:39 / 天气: 阴 / 心情: 平静 / 个人分类:javascript

var scope = "global";
function f() {
    alert(scope);         //Displays "undefined",not "global"
    var scope = "local";  
    alert(scope);         //Displays "local"
}
f();

你可能认为对alert()的第一次调用会显示出"global",因为声明局部变量的var语句还没有执行而调用全局变量scope.但是,由于"无块级作用域"的限制,输出的并不是"global".局部变量在整个函数体内是有定义的,这就意味着在整个函数体中都隐藏了同名的全局变量.虽然局部变量在整个函数体是都是有定义的,但是在执行var语句之前,它是不会被初始化的.即,上面的f()与下面的f1()等价:

var scope = "global";
function f1() {
    var scope;
    alert(scope);
    scope = "local";
    alert("scope");
}
f1();


TAG: javascript

 

评分:0

我来说两句

日历

« 2024-05-01  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 21376
  • 日志数: 30
  • 建立时间: 2007-10-02
  • 更新时间: 2007-11-14

RSS订阅

Open Toolbar