我在JavaScript中遇到全局变量的麻烦。从我读过的每一篇文章中,从函数声明的变量都有完整的范围。但是在函数内部时,低于alert(leftMargin);会导致“未定义”;

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

function position(direction) {
    alert(leftMargin); /* 'undefined' */
}

最佳答案

您确定它不确定吗?

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


正如预期的那样,它为我两次发出36次警报。在定义leftMargin变量和实际调用position()之间可能没有设置。

08-25 16:53