JS如何在语句块中声明没有词法范围的变量和函数?

时间:2019-09-29 03:16:30

标签: javascript scope lexical-scope

var a; 
{
  function a() {}
  a = 60;
  console.log('1: ', a);
}
console.log('2: ', a);

var b; 
{
  b = 60;

  function b() {}
  console.log('3: ', b);
}
console.log('4: ', b);

输出为:

1: 60
2: f a() {}
3: 60
4: 60

我不知道为什么,如果除去花括号,它们都将打印60。也许是因为吊装。但是据我所知,函数声明没有词法范围,即使有,它的第一个输出也应该打印出函数,对吧?

0 个答案:

没有答案