【发布时间】:2018-04-16 04:23:15
【问题描述】:
我很惊讶以下代码可以正常工作:
while(fred !== "stop"){
var fred = prompt("Should I stop or go?")
};
我会在 do while 循环中理解这一点:
do {
code to be executed at least once
}
while (condition);
JavaScript 如何在函数声明 fred 为变量之前设置条件?
我读过的其他问题与条件语句内部的 var 声明有关。
【问题讨论】:
-
为此必须有几十个欺骗目标。还没找到。
-
只需在
prompt语句之前放置一个console.log(fred),您会注意到null在您的prompt被处理之前被打印了无数次。 那说fred已经被提升了,因为它有函数范围。 -
@T.J.克劳德——我也这么认为。 'Hoisted' JavaScript Variables 问题将 var 声明放在顶部 - 这很有意义,除非您希望提示出现在循环内。
-
@Sharpasamarble:再看一遍。
var x位于函数的中间,它(和提升)是问题的核心(答案回答了这个问题)。 -
@T.J.克劳德 - 足够公平。 'Hoisted' JavaScript Variables 提供了一个更完整的答案,因为它演示了一个忽略在其上方声明的变量 x 并提升自己的函数的函数。
标签: javascript while-loop var