相关疑难解决方法(0)

JavaScript中的变量范围是什么?

javascript中的变量范围是什么?它们的内部是否与函数外部相同?或者甚至重要吗?另外,如果变量是全局定义的,那么它们存储在哪里?

javascript variables scope var function

1952
推荐指数
18
解决办法
48万
查看次数

这个提升如何与块作用域一起工作?

我被问到一个问题

{
  function foo() {
    console.log('A');
  }
  
  foo();
  
  foo = 1;
  
  function foo() {
    console.log('B');
  }
  
  foo = 2;

  console.log(foo);
}
console.log(foo);
Run Code Online (Sandbox Code Playgroud)

为什么第三个输出是1而不是2


不应该foo创建块作用域,因为该块中既没有let也没有const。但是第二个foo输出2意味着确实foo已经创建了另一个引用。

到底是怎么回事?

PS 我正在使用 Chrome Version 89.0.4389.90 (Official Build) (x86_64)

javascript hoisting

26
推荐指数
1
解决办法
391
查看次数

对{}中的函数声明感到困惑

var a;
if (true) {
  a = 5;

  function a() {}
  a = 0;
  console.log(a)
}
console.log(a)
Run Code Online (Sandbox Code Playgroud)

我看到了上面的代码,在{}中声明了一个函数。我认为它会打印0 0,但它会打印0 5

javascript

14
推荐指数
1
解决办法
287
查看次数

标签 统计

javascript ×3

function ×1

hoisting ×1

scope ×1

var ×1

variables ×1