变量没有悬挂

kro*_*oiz 3 javascript hoisting

在Javascript中,变量被提升到声明范围的顶部.
但是在下面的代码中似乎myvar没有提升变量.

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

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

    var myvar = "value";    

    console.log(typeof myvar);  

</script>
Run Code Online (Sandbox Code Playgroud)

以上的输出是:

undefined
string
Run Code Online (Sandbox Code Playgroud)

我预计第一行会说"字符串",因为myvar它应该被提升到它之上.

为什么不这样呢?

Que*_*tin 10

变量声明被提升,分配不是.

通过var myvar 在函数中的任何位置使用,您可以创建一个本地范围的变量myvar,但是如果您使用它,= something那么赋值将按照正常的代码顺序进行.