Ruby's Louvre

每天学习一点点算法

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

Dmitry Baranovskiy的javascript谜题

Dmitry Baranovskiy是何许人也?他是目前世界最优秀的JS开源图形库Raphaël的作者,还做了许多JS游戏自娱,是JS界顶尖高手之一。

以下五道题是放于他的博客上,直到另一个它们被另一个JS高手Nicholas C. Zakas(Yahoo!主页首席前端工程师)提到,才迅速在网络蔓延开去。大家先试着自己做一下,想不明白才看解析吧。

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差不多。可能他的更详细,毕竟从原文篇幅来看也确实如此,英文好的就看英文吧。本时我搜到一些俄罗斯文,法文什么的,也基本上贴在google在线翻译上,连蒙带猜地学习。外国人的技术比我们强多了,大家应该多上外国网站。

如果您觉得此文有帮助,可以打赏点钱给我支付宝1669866773@qq.com ,或扫描二维码

posted on   司徒正美  阅读(2265)  评论(11编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示