试题详情
- 简答题简述Javascript垃圾回收方法。
-
标记清除(mark and sweep):这是JavaScript最常见的垃圾回收方式,当变量进入执行环境的时候,比如函数中声明一个变量,垃圾回收器将其标记为“进入环境”,当变量离开环境的时候(函数执行结束)将其标记为“离开环境”。垃圾回收器会在运行的时候给存储在内存中的所有变量加上标记,然后去掉环境中的变量以及被环境中变量所引用的变量(闭包),在这些完成之后仍存在标记的就是要删除的变量了
引用计数(reference counting):在低版本IE中经常会出现内存泄露,很多时候就是因为其采用引用计数方式进行垃圾回收。引用计数的策略是跟踪记录每个值被使用的次数,当声明了一个 变量并将一个引用类型赋值给该变量的时候这个值的引用次数就加1,如果该变量的值变成了另外一个,则这个值得引用次数减1,当这个值的引用次数变为0的时 候,说明没有变量在使用,这个值没法被访问了,因此可以将其占用的空间回收,这样垃圾回收器会在运行的时候清理掉引用次数为0的值占用的空间。
在IE中虽然JavaScript对象通过标记清除的方式进行垃圾回收,但BOM与DOM对象却是通过引用计数回收垃圾的,也就是说只要涉及BOM及DOM就会出现循环引用问题。 关注下方微信公众号,在线模考后查看
热门试题
- 怎样使一个层垂直居中于浏览器中?()
- 上下填充20像素,左右填充5像素,此填充
- 为什么要有同源限制?
- CSS3有哪些新特性?
- selection对象的哪个方法直接将用
- css样式定义中,子选择器与后代选择器的
- firefox嵌套div标签的居中问题的
- 以下选项中,哪个全部都是表格标记?()
- 在html页面中,任何一个可显示的页面元
- ()用来实现web平台上的多线程处理功能
- new操作符具体干了什么呢?
- 什么是语义化的HTML?
- 浏览器的内核分别是什么?
- 你做的页面在哪些流览器测试过?这些浏览器
- 为什么web标准中IE无法设置滚动条颜色
- webSocket如何兼容低浏览器?
- .call() 和 .apply() 的
- ()主要用来进行页面上的文字段落或图片的
- 下列不属于行列标签的是()。
- 标题字的标记是()。