(function mm() { q1 = "q", q2 = "qq" })();
        (function mm() { var q1 = "q"; var q2 = "qq"; })();
        (function mm() {q1 = "q"; q2 = "qq"; })();请问前两种方法都是定义局部变量,第三种是定义全居变量吗?
如果是的话,第一第二种定义方法有何区别呢??
请指教!~谢谢~~

解决方案 »

  1.   

    LS误解.
    这是JS语言,不是c,java之类的强语言
      

  2.   

    我也是初学者,我觉得第一种和第三种不是一样的么.好比声明变量
    int i=1,j=2;
    变成两句语句
    int i=1;
    int j=2;回到js中来讲,有两点不同的
    1.重复的声明
    2.遗漏的声明(隐式声明)第一点:var a =1;
    var a =2;  // 相当于 a = 2;
    var a =3;  // 这都是合法的
    第二点
    就是你的第一个函数和第三个函数的情况,所有隐式的声明,js都把它声明为全局变量.
      

  3.   

    定义变量时没有加var关键字的,为全局变量。
      

  4.   

    规范一点
    如果明确了是全局变量定义时候就写成
    window['a']=...;定义全局并在内部使用则
    var a=window['a']=...