繁体   English   中英

在此示例中我需要使用 var 变量还是 let 变量?

[英]Do i need to use var variable or let variable in this example?

当我使用 var 而不是 let 时,以下代码可以正常工作并提示用户键入文本,直到他输入“退出”一词。 但是,当我第二次输入“退出”一词时,使用 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时,它会被提升到 function,或者如果不在 function 中则提升到全局 object(或者如果您不使用 var、let 或 const 并且只是尝试使用变量而不声明它)。 由于变量在相同的 function(或全局范围)中使用 var,因此它们指的是同一事物。

使用let时,变量的范围限定为代码块。 因此,while 语句块内的“text”变量不会引用在该块外声明并在 while 条件中使用的同一个“text”变量。 这是链接中的示例:

let x = 1;

if (x === 1) {
  let x = 2;

  console.log(x);
  // expected output: 2
}

console.log(x);
// expected output: 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM