大叔整理的《深入理解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);