javascript变量清空的问题?
我原来写function时如下:functiona(b){varb;//我习惯在这里去声明functiona(b)中的b//执行相关的操作varb="";//在这里去晴空...
我原来写function时
如下:
function a(b){
var b;//我习惯在这里去声明function a(b)中的b
//执行相关的操作
var b="";//在这里去晴空变量}
后来才知道那是完全没有必要的
因为后来我才明白函数的局部变量会随着函数的调用完成会自动从内存中释放,所以说我那么做只能降低代码执行的效率,浪费资源,浪费硬盘
所以我全都去掉了var b;,var b="";还浪费时间
但是,我的问题又出现了
如果我声明的是全局的变量,那么只能在关闭相应的页面才能清空是吧?
但如果用户不关闭响应的页面那么也会浪费资源
所以我想在用完全局变量的时候晴空变量
能办到吗???
别告诉我var b="";这样的方法
这样还是用了内存空间
我想要的是完全释放内存空间
谢谢了
高手指点
谢谢了
我没分了
谢谢了 展开
如下:
function a(b){
var b;//我习惯在这里去声明function a(b)中的b
//执行相关的操作
var b="";//在这里去晴空变量}
后来才知道那是完全没有必要的
因为后来我才明白函数的局部变量会随着函数的调用完成会自动从内存中释放,所以说我那么做只能降低代码执行的效率,浪费资源,浪费硬盘
所以我全都去掉了var b;,var b="";还浪费时间
但是,我的问题又出现了
如果我声明的是全局的变量,那么只能在关闭相应的页面才能清空是吧?
但如果用户不关闭响应的页面那么也会浪费资源
所以我想在用完全局变量的时候晴空变量
能办到吗???
别告诉我var b="";这样的方法
这样还是用了内存空间
我想要的是完全释放内存空间
谢谢了
高手指点
谢谢了
我没分了
谢谢了 展开
2个回答
展开全部
我还是昨天那个人,多谢你把我选为最佳答案,其实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++中的不同。
关于资源回收javascript和java一样是有个自动的垃圾处理器,见下面部分
javascript的垃圾回收
在javascript权威指南中有两小节提到这个问题。
对于字符串、对象、数据这些没有固定大小,必须为它们动态的分配内存,但什么时候回收这些内存呢?javascript使用和java一样的garbage collection的方法。
代码
var s="hello"; var u=s.toUpperCase(); s=u;
运行这段代码后,"hello"没有变量会再用到他,这是"hello"的存储空间的被垃圾回收了。对于javascript的垃圾回收,你唯一要关心的是,它一定会进行,不要对内存担心。
注意,javascript不提供任何的强制垃圾回收或释放内存的运算附或语句。
javascript的delete运算附和C++中的不同。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询