Javascript吊装,功能泄露

时间:2016-02-13 20:49:22

标签: javascript function hoisting

在javascript中,将变量赋值给函数声明的目的是什么?

var test = function(){console.log("Hello world")} 

function test(){ console.log("Hello world")

另外,我不明白下面的代码不起作用。是因为吊装不关心变量赋值吗? (仅关注变量声明)

vartest();
var vartest = function(){
  console.log("Hello var function")
}

1 个答案:

答案 0 :(得分:0)

第一部分不负责任。没有"单一用途"并且有各种各样的用例。

第二部分更简单。吊装可以描述为"拉起声明"。这意味着变量和函数实际上总是在其范围的顶部声明。这并不意味着它们在顶部被赋值。值在"预吊装"的原始位置分配。宣言。但是,由于命名函数未赋值,因此提升有效地将声明和实现整体移动到范围的顶部。

分配给变量的函数不会发生这种情况,因此代码"不起作用"。