(广告,请不要屏蔽。)

测验 » 变量和赋值(高级)

1. 静态 vs. 动态

哪一个表示“在运行时”?

2. 静态 vs. 动态

哪一个表示“在编译时,无需运行程序”?

3. 块级作用域

let foo = 'a';
{
  let foo = 'b';
  console.log(foo);
}
console.log(foo);

4. 块级作用域

let foo; // (A)
{
  let foo = 123;
}
console.log(foo);

5. 暂时性死区 1/5

let foo = 'a';
console.log(foo); // (A)
{
  let foo;
  foo = 'b';
}

在 A 行会发生什么?

6. 暂时性死区 2/5

let foo = 'a';
{
  console.log(foo); // (A)
  let foo;
  foo = 'b';
}

在 A 行会发生什么?

7. 暂时性死区 3/5

let foo = 'a';
{
  let foo;
  console.log(foo); // (A)
  foo = 'b';
}

在 A 行会发生什么?

8. 暂时性死区 4/5

let foo = 'a';
{
  let foo;
  foo = 'b';
  console.log(foo); // (A)
}

在 A 行会发生什么?

9. 暂时性死区 5/5

let foo = 'a';
{
  let foo;
  foo = 'b';
}
console.log(foo); // (A)

在 A 行会发生什么?

10. 闭包 (1/2)

const foo = 'a';
function func() {
  return foo;
}
function returnFunc(foo) {
  return func;
}
const result = returnFunc('b')();

会发生什么?

11. 闭包 (2/2)

const foo = 'a';
function returnFunc(foo) {
  function func() {
    return foo;
  }
  return func;
}
const result = returnFunc('b')();

会发生什么?


正确答案00