控件离开脚本后,JavaScript静态变量是否仍然存在?

控件离开脚本后,JavaScript静态变量是否仍然存在?,javascript,variables,static,Javascript,Variables,Static,我有一个关于JavaScript中静态变量的问题。它们是否仅在脚本范围内持续?我的意思是,如果控件离开脚本并返回html代码,静态变量是否仍然存在?我假设您指的是全局变量,而不是静态变量。全局变量在全局文档范围中声明。它们可以从所有方法(函数)中访问,当您从函数的代码块中修改它们的值时,该值将保持不变,因为您正在修改全局变量 例如: <script type="text/javascript"> global_var = 0; // declared globally

我有一个关于JavaScript中静态变量的问题。它们是否仅在脚本范围内持续?我的意思是,如果控件离开脚本并返回html代码,静态变量是否仍然存在?

我假设您指的是全局变量,而不是静态变量。全局变量在全局文档范围中声明。它们可以从所有方法(函数)中访问,当您从函数的代码块中修改它们的值时,该值将保持不变,因为您正在修改全局变量

例如:

<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>

全局变量=0;//全球宣布
函数全局_inc(){
全局变量+=1;//全局变量增加1
}
函数本地_inc(){
local_var=global_var;//在本地声明,作用域在函数末尾结束。
local_var+=1;//local var递增1
警报(“全局:”+全局变量);
警报(“本地:”+本地变量);
}
函数警报_全局(){
警报(“全局:”+全局变量);
}
警报_全局();//全球警报(0)
全球_公司();//将全局值增加到1
本地_公司();//将本地设置为全局(1)并将本地增量设置为(2),同时发出警报
警报_全局();//全球警报(1)
您将得到:
警报_global()中的“全局:0”警报
来自本地_inc()的“全局:1”警报
来自local_inc()的“本地:2”警报

警报_global()中的“全局:1”警报

是的,它们仍然存在。如果要重新加载页面,则会重新加载所有全局值。如何在Javascript中声明“静态”变量?静态变量在脚本的所有实例中保持不变。例如,如果您的小时费率是静态的,并且设置为$45/小时,那么在开始时以及对任何方法的所有调用中,它都将是$45。静态变量是在程序执行之前分配的,因此它们在程序执行的每个实例中都具有相同的值。那么我应该在编写代码之前在程序开始时声明吗?我不能在函数中声明它们吗?如果它们是在函数的代码块中声明的,则它们是该函数的本地对象,并且在函数退出时将被销毁。如果它们是在函数外部声明的,则即使在更新时它们也将保持不变。