摘要: 进程与线程 -- 涉及⾯试题:进程与线程区别? JS 单线程带来的好处? JS 是单线程执⾏的,但是你是否疑惑过什么是线程? 讲到线程,那么肯定也得说⼀下进程。本质上来说,两个名词都是 CPU ⼯作时间⽚的⼀个描述。 进程描述了 CPU 在运⾏指令及加载和保存上下⽂所需的时间,放在应⽤上来说就代表了 阅读全文
posted @ 2021-12-30 18:01 ·灯 阅读(37) 评论(0) 推荐(0) 编辑
摘要: // 三个常量⽤于表示状态 const PENDING = 'pending' const RESOLVED = 'resolved' const REJECTED = 'rejected' function MyPromise(fn) { const that = this this.state 阅读全文
posted @ 2021-12-30 17:10 ·灯 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 涉及⾯试题: 为什么要使⽤模块化? 都有哪⼏种⽅式可以实现模块化,各有什么特点? 使⽤⼀个技术肯定是有原因的,那么使⽤模块化可以给我们带来以下好处: · 解决命名冲突 · 提供复⽤性 · 提⾼代码可维护性 ⽴即执⾏函数 在早期,使用 立即执⾏函数 实现模块化是常⻅的⼿段,通过函数作⽤域解决了命名冲突 阅读全文
posted @ 2021-12-30 16:46 ·灯 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 涉及面试题: 原型如何实现继承? Class 如何实现继承? Class 本质是什么? ⾸先先来讲下 class ,其实在 JS 中并不存在类, class 只是语法糖,本质还是函数。 class Person {} Person instanceof Function // true 组合继承 组 阅读全文
posted @ 2021-12-30 16:18 ·灯 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 涉及⾯试题:什么是提升?什么是暂时性死区?var、let 及 const 区别? 函数提升优先于变量提升,函数提升会把整个函数挪到作⽤域顶部,变量提升只会把声明 挪到作⽤域顶部。 var 存在提升,我们能在声明之前使⽤。 let 、 const 因为暂时性死区的原因,不能在声明前使⽤。 var 在全 阅读全文
posted @ 2021-12-30 15:58 ·灯 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 原型链就是多个对象通过 __proto__ 的⽅式连接了起来。 为什么 obj 可以 访问到 valueOf 函数,就是因为 obj 通过原型链找到了 valueOf 函数。 * Object 是所有对象的爸爸,所有对象都可以通过 `__proto__` 找到它 * Function 是所有函数的爸 阅读全文
posted @ 2021-12-30 15:45 ·灯 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 浅拷贝 ⾸先可以通过 Object.assign 来解决这个问题,很多⼈认为这个函数是⽤来 深拷⻉的。其实并不是, Object.assign 只会拷⻉所有的属性值到新的对象中,如果属性值是对象的话,拷⻉的是地址,所以并不是深拷⻉。 let a = { age: 1 } let b = Object 阅读全文
posted @ 2021-12-30 15:35 ·灯 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 什么是闭包? 闭包是指有权访问另外一个函数作用域中的局部变量的函数。 声明在一个函数中的函数,叫做闭包函数。 而且内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后。 闭包有三个特性: 1.函数嵌套函数; 2.函数内部可以引用外部的参数和变量; 3.参数 阅读全文
posted @ 2021-12-30 14:11 ·灯 阅读(40) 评论(0) 推荐(0) 编辑