2016-07-28 4 views

答えて

4

これは、ローカル変数とグローバル変数とは関係ありません。コンソールがあなたに示すのは、このステートメントの結果だけです。 varステートメントには結果がないので、undefinedと表示されます。代入文 doに結果(割り当てられた値)があるため、その値が表示されます。

あなたは

var a = 5; 
a 

を行った場合は...あなたはundefined5続い参照してくださいね。


技術的には、代入式を含む式文です。

0

私は、a=5と書くと、グローバル変数が作成されることを理解しています。だからそれはwindowオブジェクトの一部になるでしょう。したがって、あなたはその価値を得ます。

var a = 5を実行すると、新しい変数(参照)が作成され、値が設定されます。したがって、あなたはundefinedを得るでしょう。

テストのために次のコードを試すこともできます。

var a = {}; 
a.b = 5; 

これは5なくundefinedを返します。

+0

ここでは疑問があります。最初に新しい参照変数が作成されると、値が参照変数 –

+0

に割り当てられた後に未定義が返されます。したがって、コンパイラは新しい参照を作成する必要があるので、その参照を作成してその値を返し、*設定値*の動作をasync – Rajesh