2017-03-06 4 views
-1

ソース:https://developer.mozilla.org/el/docs/Web/JavaScript/Reference/Operators/function
"JavaScriptの関数式は、関数宣言とは異なり、呼び出されません。関数式を宣言する前に使用することはできません。
関数式ホイスト?

例:

var hey = function(){ 
    console.log("hi"); 
} 

Chromeのコンソール:それは言って何

function(){ 
console.log("hi"); 
} 
+2

ここに質問がありますか? – RobG

+1

私はここに質問が表示されない、plsはあなたが知りたいことを明確にします。 – cyrix

+0

何が問題なのですか?関数を宣言した後に 'window.hey'を使用していますので、引用した文書は適用されません。 – Barmar

答えて

1

を返しwindow.heyは、あなたが書くことができないということです。

hey(); 
var hey = function() { 
    console.log("hi"); 
} 

なぜならあなた」 funcを割り当てる前に変数heyを使用してくださいその表現を表現する。しかし、あなたは書き込み:

hey(); 
function hey() { 
    console.log("hi"); 
} 

関数宣言を含む関数の先頭に掲揚されているため。詳細については

、あなたが行うとき、Barmarの答え@上構築するにはvar functionName = function() {} vs function functionName() {}

0

を参照してください。

hey(); 
var hey = function() { 
    console.log("hi"); 
} 

は技術的には、変数の宣言はまだ掲げられているが、それが書かれている場所の割り当てはそう、残りますそれは:

var hey; 
hey(); // hey is declared as a variable, but is still undefined. 
hey = function() { 
    console.log("hi"); 
}