站点图标 久久日记本

5段小代码理解JS核心,闭包和作用域

代码1:

 if (!("a" in window)) {
     var a = 1;
 }
 alert(a);

显示:undefined
解释:开始a为undefined,但undefined,但 undefined当然存在于window中,So...

代码2:

var a = 1,
b = function a(x) {
    x && a(--x);
};
alert(a);

显示:1
解释:方法a只能在a方法中调用,即a(),其它域使用b(),以a作为b方法的方法名.
代码3:

function a(x) {
    return x * 2;
}
var a;
alert(a);

显示:

    function a(x) {
        return x * 2;
    }

解释:var a;仅是定义,并无赋值.

代码4:

function b(x, y, a) {
    arguments[2] = 10;
    alert(a);
}
b(1,2,3);

转载文章

退出移动版