Jul*_*ius 1 javascript global-variables while-loop
我在 codecadamy.com 上的 Javascript 教程午餐时间。
我有这个简单的循环:
var cards = ['Diamond', 'Spade', 'Heart', 'Club'];
var currentCard = 'Heart';
while (currentCard !== 'Spade') {
console.log(currentCard);
var randomNumber = Math.floor(Math.random() * 4);
currentCard = cards[randomNumber];
}
console.log('Found a Spade!');Run Code Online (Sandbox Code Playgroud)
这很好,但是如果我randomNumber从循环中删除并与其他全局变量一起放置,codecademy 控制台不会打印结果......
由于全局变量应该可用于该循环,我认为 codecademy 控制台有问题?
你同意这应该有效吗?
var cards = ['Diamond', 'Spade', 'Heart', 'Club'];
var currentCard = 'Heart';
var randomNumber = Math.floor(Math.random() * 4);
while (currentCard !== 'Spade') {
console.log(currentCard);
currentCard = cards[randomNumber];
}
console.log('Found a Spade!');Run Code Online (Sandbox Code Playgroud)
通过将随机数移到循环之外,意味着它仅被评估一次。
因此,第一次循环运行时,如果随机数最终为除 之外的任何值1,则 while 循环将无限运行,因为currentCard将始终不等于'Spade'。
所以正在发生的事情是,codeacademy 控制台将无限循环地评估,并且可能最终崩溃。