JavaScript 中,下⾯代码的输出是什么?

(() => {
  let x, y;
  try {
    throw new Error();
  } catch (x) {
      (x = 1), (y = 2);
    console.log(x);
  }
  console.log(x);
  console.log(y);
})();
945 次浏览
  • A、undefined undefined undefined
  • B、1 undefined 2
  • C、1 1 2
  • D、1 undefined undefined
catch 块接收参数 x 。当我们传递参数时,这与变量的 x 不同。这个变量 x 是属于 catch 作⽤域的。 之后,我们将这个块级作⽤域的变量设置为 1 ,并设置变量 y 的值。 现在,我们打印块级作⽤域的变量 x ,它等于 1 。 在 catch 块之外, x 仍然是 undefined ,⽽ y 是 2 。 当我们想在 catch 块之外的 console.log(x) 时,它返回 undefined ,⽽ y 返回 2 。
挑战成功
2年前
挑战失败
2年前
挑战成功
4年前