let phrase = "Hello";
if (true) {
let user = "John";
function sayHi() {
alert(`${phrase}, ${user}`);
}
}
sayHi();
当我运行代码时,它会输出Hello John但是根据此站点https://javascript.info/task/function-in-if 它显示输出应该是一个错误。这是因为sayHi函数在内部声明了吗?有人可以解释什么应该是输出和为什么???
答案 0 :(得分:-3)
javascript.info
网站上的信息不正确。函数声明(与使用var
的声明一样)是函数作用域,而不是块作用域。
但是,使用const
和let
的声明是块作用域是正确的。