JS-删除全局变量

JavaScript035

JS-删除全局变量,第1张

如果你没有使用严格模式,并且给一个未声明的变量赋值。此时会创建一个全局变量。全局变量可以理解为全局对象的一个属性。如果你想删除掉全局变量怎么办:但是也需要注意,有些全局变量是删不掉的。比如用“var”声明的全局变量。(在JS顶部声明)。 同样的,在函数中声明的变量也是无法删除的。

我还是昨天那个人,多谢你把我选为最佳答案,其实javascript的全局变量占用的内存不大,一般全局变量都是一个number型的,(如果你要把很大很大的数组作为全局变量当然也可以),最重要的是,他占用的是客户端的内存,不会因为多了几千个人打开这个网页,服务器的内存会被你的全局变量所占用,不会的,服务器内存一点都不会被这个全局变量所占用,只是占用某一个客户机器的内存。所以如果这个js要实现很复杂的功能,要考虑到客户端内存,其实就是你的javascript程序自身的优化问题了。

关于资源回收javascript和java一样是有个自动的垃圾处理器,见下面部分

javascript的垃圾回收

在javascript权威指南中有两小节提到这个问题。

对于字符串、对象、数据这些没有固定大小,必须为它们动态的分配内存,但什么时候回收这些内存呢?javascript使用和java一样的garbage collection的方法。

代码

var s="hello" var u=s.toUpperCase() s=u

运行这段代码后,"hello"没有变量会再用到他,这是"hello"的存储空间的被垃圾回收了。对于javascript的垃圾回收,你唯一要关心的是,它一定会进行,不要对内存担心。

注意,javascript不提供任何的强制垃圾回收或释放内存的运算附或语句。

javascript的delete运算附和C++中的不同。