如何解决在此示例中,我需要使用var变量还是let变量?
当我使用var而不是让以下代码正常工作时,提示用户键入文本,直到他输入单词“ exit”。 但是,当我第二次键入单词“ exit”时,使用let不会。
let text = prompt("write something");
while(text !== "exit")
{
let text = prompt("write something");
}
console.log("end of program);
解决方法
重设文字时不要使用任何东西
let text = prompt("write something");
while(text !== "exit")
{
text = prompt("write something"); // nothing,uses text in outer scope
}
console.log("end of program);
在while循环中使用'let'时,您正在创建一个单独的变量 适用于该语句块。当您使用var时,它是该函数的hoisted;如果不在函数中,则为全局对象(或者如果您不使用var,let或const并尝试使用a变量而不声明它)。由于变量使用var属于同一函数(或全局作用域),因此它们引用的是同一事物。
使用let时,变量的作用域为代码块。因此,while语句块内的“文本”变量不会引用在该块外部声明并在while条件中使用的同一“文本”变量。这是链接中的示例:
let x = 1;
if (x === 1) {
let x = 2;
console.log(x);
// expected output: 2
}
console.log(x);
// expected output: 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。