Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
Js/Ts
1 闭包
定义:闭包就是能够读取其他函数内部变量的函数。本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁
用途:
(1)作为返回值
(2)回调
(3)防抖节流
(4)数据不能被操作,但是能被外部读取
(5)用于定时器,时间监听,ajax请求,或者任何异步方法的回调函数
settimeout(function(){}, 1000)
2 js 链式作用域
js子对象会一级一级向上寻找所有父对象的变量,反之不行
3 Cookie 与 Local storage 与 Session storage 区别
4 js异步机制(eventloop)
主进程----->异步队列---->微任务(promise,nexttick)---->宏任务(settimeout,script,主进程)
5 JavaScript 中 call()、apply()、bind() 的用法:主要改变this指向
使用场景:
(1) 判断数据类型 Object.prototype.toString.call()
(2) 用来获取数组最大最小值
(3)继承
注意:多次绑定bind,只会执行第一次
6 会引起内存泄漏的因素
(1) 意外的全局变量:比如在函数内部,没用使用var声明的变量。 (2) 被遗忘的计时器:计时器没有被清除 (3) 闭包 (4)没有被清理的DOM元素引用 (5) 过多死循环
7 js v8引擎垃圾回收策略
v8采用了分代回收的策略,将内存分为两个带:新生代和老生代
(1)新生代回收策略:
a. from ,to 两个空间
b. 对象引用回收
c. 将活跃的对象从from空间复制到to空间
d. 清空from空间
e. 交换from和to空间
(2)老生代回收策略:
a. 标记存活活跃对象
b. 回收死亡对象占用空间
c. 移动整理空间