"警报(a)''之间的区别和'警报(a); var a = 1;''在JavaScript中?

时间:2016-01-28 06:43:24

标签: javascript html

<script type="text/javascript">
    alert(a);
</script>

控制台日志显示:&#34;未捕获的ReferenceError:a未定义&#34 ;;

<script type="text/javascript">
    alert(a);
    var a = 1;
</script>

在浏览的中间,Log显示:&#34; undefined&#34;

此代码如何在js中运行以及导致此差异的原因

1 个答案:

答案 0 :(得分:7)

在此代码中

<script type="text/javascript">
    alert(a);
    var a = 1;
</script>

var a ;被提升到顶部,它变为

<script type="text/javascript">
    var a;
    alert(a);
    a = 1;
</script>

所以当a被提醒时,它是undefined

在此代码中

<script type="text/javascript">
    alert(a);
</script>

a根本没有定义,所以它给出了错误"Uncaught ReferenceError: a is not defined"