【发布时间】:2013-10-20 16:18:38
【问题描述】:
我现在正在学习 Javascript,并且有一个关于提升/作用域的问题 - 也许我遗漏了一些东西。
如果我定义了一个全局变量,我不能在函数中引用该变量的值,因为它超出了范围?
var x = "hello";
function temp(){
console.log(x);
}
原来是
var x = "hello";
function temp(){
var x;
console.log(x);
}
这两个输出未定义。全局变量的要点是什么,或者如何在函数中使用它们? - 正如我所说,我在这里错过了什么! :)
提升也适用于功能?但不在匿名函数上?正确的?
感谢任何帮助!
谢谢!
【问题讨论】:
-
“提升也适用于函数?但不适用于匿名函数?对吗?” 不,但是函数声明和函数之间是有区别的表达式。另外,第一个例子会输出
"hello",它不等同于第二个例子。 -
链接到一个很好的例子:stackoverflow.com/a/500459/2851947
标签: javascript scope scoping hoisting