代码改变世界

大叔手记(19):你真懂JavaScript吗?

2012-02-09 09:45  汤姆大叔  阅读(...)  评论(... 编辑 收藏

介绍

大叔整理的《深入理解JavaScript系列》已经快20篇了,不知道大家看的如何了? 除了大家熟知的闭包、原型、作用域以外,不知道大家是否真正理解了JavaScript的核心特性,在网上发现几个小题目非常有意思,正好适合考察大家对JavaScript的理解。

如果大家有兴趣(或者自认为对JavaScript了解还不错的人),可以尝试着回答一下下面5个题目的输出结果(不要google或baidu哦)。

至于正确结果嘛,自己可以将代码复制到浏览器里就可以看到了(稍后这两天,我会将详细的解释单独发帖整理出来)。

PS:大胆点,不管结果对不对,都把你的答案贴出来(最好带有自己的想法,后面我们和准确解释做对比,这也是学习的过程)。

答案已经贴在《深入理解JavaScript系列(20):《你真懂JavaScript吗?》答案详解》里了

正文

题目1:

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

 

题目2

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

 

题目3:

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

 

题目4:

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

 

题目5:

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

同步与推荐

本文已同步至目录索引:《大叔手记全集》

大叔手记:旨在记录日常工作中的各种小技巧与资料(包括但不限于技术),如对你有用,请推荐一把,给大叔写作的动力。