2017-12-15 7 views
-1

これは私の問題です。javascript可変スコープ関連巻上げ

<html> 
<head> 
</head> 
<body> 
    <script> 
     var name; 
     console.log(name); 
     name = "abcdefg"; 
     console.log(name); 
    </script> 
</body> 
</html> 

このコードの出力は、私が最初のログを吊り上げるため、未定義とする必要があることを知っている

enter image description here

です。

私はすでにキャッシュをリフレッシュして削除しようとしましたが、その理由を理解していません。私を助けてください。

+0

と等しくない質問は何ですか?なぜこれが起こっているのかあなたはすでに知っています。 – Tushar

+1

問題を再現できません。 – Li357

+0

これを正確に再現することはできません。 – UDID

答えて

2

nameは、windowの予約変数です。そのため、最初にnameにアクセスしても、それを上書きせずに(var nameはオーバーライドしません)、グローバルプロパティwindow.nameが取得されます。あなたが何かを得ることが最初console.logであなたの場合

undefinedを異なるが、abcdefg

<html> 
 
<head> 
 
</head> 
 
<body> 
 
    <script> 
 
     var name; 
 
     console.log(name); 
 
     name = "abcdefg"; 
 
     console.log(name); 
 
     console.log(window.name); 
 
    </script> 
 
</body> 
 
</html>

+0

@SurenSrapyanあなたは正しいです。私のwindow.name値が変更されました。 – rura6502

関連する問題