JavaScript全局变量麻烦

Ben*_*Ben 0 javascript global-variables

我在JavaScript中遇到全局变量问题.从我读过的每篇文章中,一个函数声明的变量都有一个完整的范围.但是alert(leftMargin);当在函数内部时,下面导致'undefined';

var leftMargin = 36;
alert(leftMargin); /* '36' */

function position(direction) {
    alert(leftMargin); /* 'undefined' */
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*man 5

你肯定是不确定的?

<script type="text/javascript">
    var leftMargin = 36;
    alert(leftMargin); /* '36' */
    function position(direction) {
        alert(leftMargin); /* '36' */
    }
    position();
</script>
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,它为我提醒了两次.在定义leftMargin变量和实际调用之间可能没有设置position().