[在开关/大小写上使用let var不会读取第一种情况

问题描述 投票:-1回答:2

我是初学者,将JavaScript学习到代码学院中,我正在自己练习。

在下面的代码中,我使用let声明具有不同值的相同var。我想使用开关/盒条件,我想在控制台上打印“ Leandro”,但我只会得到“ Ezequiel”,但是如果我改变Ezequiel值(故意),我会得到默认值。我想打印“ Leandro”

    let nombre = "Leandro";
nombre = "Ezequiel";

switch (nombre){

  case "Leandro":
    console.log("Leandro")
    break;

  case "Ezequiel":
    console.log("Ezequiel")
    break;

  default:
    console.log("Adios")
}
javascript variables switch-statement
2个回答
0
投票

变量只能包含一个字符串。因此,当您执行nombre = "Ezequiel";时,它将覆盖变量中的最后一个值。因此,如果要使用多个名称,则可能需要多个变量或一个数组。

为了能够重用该开关,您可以使其成为一个函数并使用名称进行调用。

function getMessage(nombre) {
  switch (nombre) {

    case "Leandro":
      console.log("Leandro")
      break;

    case "Ezequiel":
      console.log("Ezequiel")
      break;

    default:
      console.log("Adios")
  }
}

let nombre1 = "Leandro";
let nombre2 = "Ezequiel";

getMessage(nombre1);
getMessage(nombre2);

0
投票

请仔细研究,看看何时可以有两个同名的变量,为什么不应该

<script>
var nombre=""; // global var - try to assign this with let for a surprise
function test1() {
  nombre = "A"
 
}
function test2() {
  let nombre = "B"
  console.log(window.nombre,nombre)
}
test1()
console.log(window.nombre)
test2()
</script>
© www.soinside.com 2019 - 2024. All rights reserved.