问题:吊起来之后,bar的价值是多少?
var bar = function() {
return 3;
};
我认为:函数表达式。我错了?
问题:吊起来之后,bar的价值是多少?
var bar = function() {
return 3;
};
我认为:函数表达式。我错了?
为什么不试试呢?
var bar = function() {
return 3;
};
console.log(bar);
输出,
function () {
return 3;
}
如果您尝试使用未定义的变量,那么这当然会引发引用错误。如果您尝试分配给未定义的变量,那么它将创建一个全局变量(在网页中,大致相当于写作window.foo = bar;
)。但是,该变量在创建之前仍然是未定义的。
const
但是,如果您使用or声明局部变量var
,那么它将从函数的开头定义为具有 value undefined
,因此“早期”访问变量不会引发引用错误,并且设置它将设置局部值。您不必在函数开始时声明变量;声明将被提升到函数的范围。
相比之下,在 ES6 中,如果你使用 声明一个变量let
,那么它只会被提升到块的开头。
此外,如果您使用 声明“变量” function
,那么它的值也会被提升,因此您可以在声明之前调用函数。(该函数必须在同一个脚本中。)
确实是功能。所以,是的,你是对的。