3

Javascript では、変数は宣言されているスコープの先頭に引き上げられます。
ただし、次のコードでは、変数myvarが巻き上げられていないようです。

<html>
<body>
</body>
</html>

<script type="text/javascript">
    console.log(typeof myvar);  

    var myvar = "value";    

    console.log(typeof myvar);  

</script>

上記の出力は次のとおりです。

undefined
string

myvarはその上に持ち上げられるはずな ので、最初の行は「string」と言うだろうと思っていました。

なぜそうではないのですか?

4

2 に答える 2

10

変数宣言は巻き上げられますが、代入は巻き上げられません。

var myvar 関数内の任意の場所で使用すると、ローカル スコープの変数が作成されますmyvarが、= somethingその後に を使用すると、代入は通常のコード順で行われます。

于 2015-01-04T22:03:58.510 に答える