【发布时间】:2014-04-24 23:15:24
【问题描述】:
我一直致力于结合在线和自制环境教孩子们使用 Javascript 编程。
在某些阶段,大多数孩子都会遇到创建无限循环的时候。在过去的日子里。一个无限循环应该是孩子的第一个程序
10 PRINT "Mike is cool"
20 GOTO 10
用 JavaScript 写这样的东西是有问题的
while(true) {
print("Mike is cool");
}
由于 JavaScript 的同步特性,它不起作用,这是他们必须学习的东西。问题不在于他们的程序没有按预期运行,而是当他们运行他们的程序时整个世界都停止了!
有些浏览器有足够的控制权来关闭窗口,有些只是锁定。如果您使用的是浏览器内环境(如 jsfiddle、jsbin 等),则您没有足够的控制权来阻止流氓“任务”
您无法事先审核代码(实际上是停机问题),但有什么合理的方法可以减轻症状吗?
可汗学院的编程环境似乎可以做到这一点
http://www.khanacademy.org/cs/breaking/4804951998988288
如何处理过多的运行时间?在 while 仍在运行时如何做到这一点?
【问题讨论】:
-
你可以通过
setInterval()运行它 -
我相信可汗学院和 Codecademy 等网站在服务器上运行他们的代码,而不是在本地,他们有更多的控制和监控能力,而不是在用户的浏览器中运行代码。跨度>
-
也许您可以使用命令行 JavaScript 解释器(例如 Node.js 中的 V8)涵盖基础知识(包括这种情况)。让他们在记事本(或适当的编辑器)中创建一个脚本,然后使用
node script.js运行它。如果他们创建了一个无限循环,CTRL-C 退出它。不像那些在线工具那样华而不实,但也不错。 -
也有网络工作者,但他们可能会产生比他们要解决的问题更多的问题。
-
什么“由于 JavaScript 的同步特性而无法工作”?
标签: javascript while-loop