我试图理解JavaScript中的变量作用域。但是我不明白为什么下面的代码与预期的行为不同。
'use strict';
function C() {
console.log(a);
}
function B() {
let a = 'printing A from B()';
C();
}
function A() {
let a = 'printing A from A()';
B();
}
const a = 'printing A from global context';
A(); // output getting: 'printing A from global context': CORRECT
B(); // output getting: 'printing A from global context' but expected : 'printing A from B()'
C(); // output getting: 'printing A from global context' but expected : 'printing A from A()'
输出正确。函数A和函数B都有不同的变量作用域,但是C不能访问它们的作用域——只能访问全局作用域——它定义了const A