Javascript每日一题

2021-07-15 11:55 Javascript每日一题

输出是什么?

(() => {  let x, y  try {    throw new Error()  } catch (x) {    x = 1;    y = 2;    console.log(x)  }  console.log(x)  console.log(y)})()



单 选

•  A: 1, undefined, 2•  B: undefinedundefinedundefined•  C: 1, 1, 2•  D: 1, undefined, undefined




图片




图片

答案

图片





答案: A


catch 代码块接收参数 x。当我们传递参数时,这与之前定义的变量 x 不同 。这个 x 是属于 catch 块级作用域的。

然后,我们将块级作用域中的变量赋值为 1,同时也设置了变量 y 的值。现在,我们打印块级作用域中的变量 x,值为 1。

catch 块之外的变量 x 的值仍为 undefined, y 的值为 2。当我们在 catch 块之外执行 console.log(x) 时,返回 undefined,y 返回 2。



2021/07/15
本文章转载自公众号:javascript_daily

首页 - Javascript 相关的更多文章: