您是否有足够的兴趣再一次认识JavaScript?

四年前,悉尼程序员Dmitry Baranovskiy在他的个人博客更新了这样一篇博文:《So, you think you know JavaScript?》 不久便在国内引发围观,俨然成了一个老生常谈的话题。

准备好了吗?如下几段代码,是在其基础上新增了几道,相信不少JSER都很眼熟。那么对于未曾见过的同学,它会帮助你对javascript核心有更深层的了解,尽管它们都偏离于实际应用之外。试着去分析他们的最终结果,在这之前切记不要用调试工具,否则就丧失了其意义。

A:不要以为它是易语言

var 弹框 = alert, 函数 = Function;
function 贤心(行为){
    弹框('此人正在'+ 行为);
};
函数('贤心("发呆")')(); 

B:

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

C:

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

D:

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

E:

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

F:

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

G:

console.log("Why am I a " + typeof + "");

H:

var u1000 = {
  u1001: 'foo',
  u1011: 'bar'
};
console.log( u1000.u1001 );
console.log( u1000.u1011 );

I:

console.log(++[[]][+[]]);

J:

var fn = function(){
    return false;
};
(function(){
    console.log(fn());
    if(false){
         function fn(){
            return true;
        }
    }
})();
原文地址:https://www.cnblogs.com/mrxia/p/3811565.html