本地&全局变量范围与' var'关键词

时间:2016-06-10 12:55:48

标签: javascript

我理解为什么可以显示具有全局范围的以下变量:

<script>

    var carName = "Volvo";

    myFunction();

    function myFunction()
    {
        document.getElementById("demo").innerHTML = "I can display " + carName;
        // I can display Volvo
    }

</script>

但是,我无法理解为什么var关键字会使以下2个代码段不同。

我可以差异,但我不明白为什么会有undefined,而另一个则可以访问。有人可以帮我理解这个区别吗?

<script>

    myFunction();

    document.getElementById("demo").innerHTML = "The type of carName is " + typeof carName;
    // The type of carName is undefined.

    function myFunction()
    {
        var carName = "Volvo";
    }

</script>


<script>

    myFunction();

    document.getElementById("demo").innerHTML = "I can display " + carName;
    // I can display Volvo

    function myFunction()
    {
        carName = "Volvo";
    }

</script>

1 个答案:

答案 0 :(得分:3)

var具有功能范围。如果您不使用它,它将在非严格模式下被隐含地置于全局范围内。