2021-05-12 前端面试题

前端面试题

6.浏览器垃圾回收机制

 js引擎会对运行中的程序使用的数据进行扫描,如果出现没有在使用的数据,那么垃圾回收程序会销毁这些数据,释放他们占用的内存。
 ​
 1. 垃圾回收机制什么时候运行(不用记)
    IE6的时候,如果声明的变量超过256个,字符串占用的内存大小超过64k,使用的对象超过个4096时,垃圾回收程序就会运行,它开始扫描    程序使用的变量,回收其中没有在使用的变量(释放它们占用的内存空间)。chrome等浏览器对这个阈值放大了一倍处理,在某次回收后,    看回收的变量占总变量比例,如果这个比例超过85%,说明需要清理工作,那么此时应该降低垃圾回收的阈值,将其缩小一倍;如果这个比例    小于15%,说明不需要清理工作,那么就将垃圾回收的阈值调大一倍。
 2. 垃圾回收机制怎么知道一个数据该释放占用的内存了(记住)
    1. 引用计数,js引擎会计算一个变量被使用的次数,当它的使用次数为0时,在下次垃圾回收程序运行时就清理这个变量,但是这种方案有       一个问题,无法清除循环引用的变量
    2. 标记清除,从全局变量开始,对每个变量进行标记,第一次来一波标记。下次垃圾回收程序运行,对此时程序的每个变量再进行一波标       记,比对两次标记中的变化。如果上次的变量在这次标记中没有使用了,此时就清理掉。

5.js语言的组成

 1. javascript = BOM (browser object model) + dom (document object model) + ecmascript(js的核心标准语言)
 2. Node.js = ecmascript  + commonjs规范定义的各模块(buffer + tcp + http + fs + module + package + ...)
 3. w3c组织 制定 BOM + DOM的各种规范

4. 变量提升是怎么回事

 1.当前作用域下,js代码执行前,浏览器会把var和function函数提升到当前作用域最前面。
 2.变量预解析会把变量的声明提升到当前作用域最上面,只提升var声明,不提升赋值。
 3.函数预解析会把函数的声明提升到当前作用域对上吗,但不会调用函数。

3.函数传参数时基本类型和引用类型有什么不一样

 引用类型:值是保存在内存对象中,不允许直接操作内存
 基本类型:按值访问 直接操作保存在变量中的值

2.this 指向问题

 1.普通函数,定时器,和立即执行函指向window
 2.对象的方法指向 该方法所属对象 
 3. 构造函数 指向实例对象 
 4. 绑定时间函数 指向绑定事件对象 

1.js的作用域

 全局作用域 :在页面打开时被创建,页面关闭时被销毁
 函数作用域: 调用函数时,函数作用域被创建,函数执行完毕,函数作用域被销毁
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值