问答详情
源自:7-2 [JavaScript]作用域

全局变量的输出

老师,为什么执行for循环下面的console.log(item);语句,输出结果是b呢?不应该是a   b吗?

提问者:VirgoYellow 2015-04-06 08:52

个回答

  • Bosn
    2015-04-08 15:27:32

    给下具体的代码和上下文信息呀

  • __innocence
    2016-08-05 20:53:48

    明显只输出b,因为这句不在循环体里,只运行了一次。上面输出ab的是因为循环了两次

  • VirgoYellow
    2015-04-13 18:48:35

    /**我直接复制的,有点乱。。**/

    var a=10;

    undefined

    (function(){var b=20;})();

    undefined

    console.log(a);

    10

    console.log(b);

    ReferenceError: b is not defined

    console.log(b);

    /* 通过 F...log(b); (第 2 行)

    for(var item in {a:1,b:2}){console.log(item);}

    a

    b

    console.log(item);

    b        /**********这里为什么只输出b呢?不是应该跟上面的结果一样么************/

    eval("var a=1;");

    undefined