一旦控制离开脚本,JavaScript静态变量是否保持存在?

时间:2011-09-30 03:46:57

标签: javascript variables static

我对JavaScript中的静态变量有疑问。它们只在脚本范围内持续吗?我的意思是,如果控制离开脚本并返回到html代码,静态变量仍然存在吗?

1 个答案:

答案 0 :(得分:0)

我认为你的意思是全局而不是静态变量。全局变量在全局文档范围中声明。它们可以从所有方法(函数)访问,当您从函数的代码块中修改它们的值时,该值仍然存在,因为您正在修改全局变量。

例如:

<script type="text/javascript">
    global_var = 0; // declared globally
    function global_inc(){
        global_var += 1; // global var incremented by 1
    }

    function local_inc(){
        local_var = global_var; // declared locally, and scope ends at function end.
        local_var += 1; // local var incremented by 1
        alert('global: ' + global_var);
        alert('local: ' + local_var);
    }

    function alert_global(){
        alert('global: ' + global_var);
    }
</script>

<script type="text/javascript">
    alert_global(); // alert global (0)
    global_inc(); // increment global to 1
    local_inc(); // set local to global (1) and increment local to (2), alert both
    alert_global(); // alert global (1)
</script>

你会得到:
来自alert_global()的“global:0”警报 来自local_inc()的“global:1”警报 来自local_inc()的“local:2”警报 来自alert_global()的“global:1”警报