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」と言うだろうと思っていました。
なぜそうではないのですか?