javascript五大谜题

javascript五大谜题

Dmitry Baranovskiy是谁?他是目前世界最优秀的JS开源图形库Raphaël的作者,还做了许多JS游戏自娱,是JS界顶尖高手之一。今天我就从他的博客上转载他发布到自己博客上的五个JS题目,看看你们能不能都解的了。


Quick test for real understanding of JavaScript core beyond closures and scopes. Here five small scripts. Try to answer what will be alerted in each case without running them in the console. Then you could create a test file and easily check your answers. Ready?


第一题:

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


第二题:

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


第三题:

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


第四题:

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


第五题:

function a() {
    alert(this);
}
a.call(null);


大家可以先自己想想为什么要这么做,关于这五个题目是被Nicholas C. Zakas(Yahoo!主页首席前端工程师)转自自己博客后出名的,大家想知道答案可以去他的博客上看,解释的很详细。


转载请注明来自 520UED http://www.520ued.com/article/538828c7b992a7c43f5c2044

comments powered by Disqus