【发布时间】:2017-08-02 00:14:04
【问题描述】:
我在以下情况下得到一个非常奇怪的输出:
function test(){
var test=123;
console.log(test)
}
// this output : 123
(function test(){
var test=123;
console.log(test)
})()
// this output: 123
但是当使用下面的代码时
(function test(){
test=123;
console.log(test)
})()
//output:
function test(){
test=123;
console.log(test)
}
谁能解释一下。
【问题讨论】:
-
它叫做
hoisting。谷歌一下。 -
@Kinduser:不,这不是提升。
-
我知道吊装,你能解释一下行为吗
-
@T.J.Crowder 在没有
var关键字的函数内部声明变量使其成为全局变量,它被提升到脚本中。不是吗? -
@T.J.Crowder 感谢您告诉我。撤回了我的投票
标签: javascript hoisting