-7

问题:吊起来之后,bar的价值是多少?

var bar = function() {
return 3;
};

我认为:函数表达式。我错了?

4

3 回答 3

4

为什么不试试呢?

var bar = function() {
    return 3;
 };

console.log(bar);

输出,

  function () {
    return 3;
  }
于 2013-04-05T17:37:26.733 回答
0

如果您尝试使用未定义的变量,那么这当然会引发引用错误。如果您尝试分配给未定义的变量,那么它将创建一个全局变量(在网页中,大致相当于写作window.foo = bar;)。但是,该变量在创建之前仍然是未定义的。

const但是,如果您使用or声明局部变量var,那么它将从函数的开头定义为具有 value undefined,因此“早期”访问变量不会引发引用错误,并且设置它将设置局部值。您不必在函数开始时声明变量;声明将被提升到函数的范围。

相比之下,在 ES6 中,如果你使用 声明一个变量let,那么它只会被提升到块的开头。

此外,如果您使用 声明“变量” function,那么它的值也会被提升,因此您可以在声明之前调用函数。(该函数必须在同一个脚本中。)

于 2013-04-06T12:56:11.480 回答
0

确实是功能。所以,是的,你是对的。

于 2013-04-05T17:38:15.593 回答