前端知识点

150 阅读2分钟

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. 移动整理空间