这个for循环应该做什么
What is this for-loop supposed to do?
我在一些Javascript代码中跋涉,遇到了这个循环
for (var w = window; w.window === window.window.window; w = w.window) {
w.w = w.prompt("Enter password");
if (w.w === "swordfish") break;
w.alert("Incorrect password.");
}
w.alert("Welcome, authenticated user!");
这个代码对我来说没有任何意义。这里到底发生了什么,它是如何工作的?
window
始终等于window.window....window
,因此循环永远不会结束,除非密码正确。
for(;;)
循环具有以下签名:
for (init; test; increment);
它一直持续到test
为假。由于window === window
始终为真,因此循环将继续运行,直到遇到break
为止。为了澄清,w
总是指window
。
除非您提供密码"箭鱼",否则警报框会无限期弹出!
如果你遇到这样的脚本,只需禁用JavaScript并查看Source,获取密码(记下它),启用JS,再次运行脚本并输入密码,看看等待什么;)
您需要看到前一行才能完全理解此代码:
var window = (function () { return this; })();
相关文章:
- 鉴于 for..在构造中,库提供的函数(如 jQuery.map() 或 _.each())有什么用
- 我的 for 循环有什么问题
- 在 aurelia 中使用 repeat.for 绑定自定义元素的正确方法是什么
- 在 JavaScript 中的 for 循环中重新分配变量的目的是什么?
- 什么工作得更快“for(在obj中键入)”或“.forEach”
- 在 Javascript 中,在制作 XHR 或接收推送通知时,JSON 以空的 for(;;); 开头的目的是什么?
- 字符串上的 for/in 循环是什么意思
- JSHint认为for-in变量是“坏的”.这是什么意思
- 在 JS 中的 for 循环中重新分配变量是什么意思
- 我在 javascript 控制台中编写一个简单的 for 循环时遇到了什么语法错误
- while和for循环的目的是什么,if代码中的语句
- 这个for循环应该做什么
- 在JavaScript的for in循环中,LeftHandSideExpression有什么用途
- 在 Array.prototype 中传递“for each”循环的参数的语法是什么?
- 这个 JavaScript for loop 有什么问题?是定义条件的第二条语句吗?
- 有什么方法可以提高JS中for循环的性能吗
- 我的For循环计时不正确,是什么'It’他错了
- 给for循环的结束点赋值的优缺点是什么?
- 而不是"for"在标签中我可以用什么
- 在javascript中编写非阻塞的for循环最干净的方法是什么?