随笔分类 -  整理

摘要:涉及面试题:事件的触发过程是怎么样的?知道什么是事件代理嘛? 1 事件触发三阶段 window 往事件触发处传播,遇到注册的捕获事件会触发; 传播到事件触发处时触发注册的事件; 从事件触发处往 window 传播,遇到注册的冒泡事件会触发。 事件触发一般来说会按照上面的顺序进行,但是也有特例,如果给 阅读全文
posted @ 2022-01-02 17:07 ·灯 阅读(370) 评论(0) 推荐(0) 编辑
摘要:涉及面试题:为什么 0.1 + 0.2 != 0.3 ?如何解决这个问题? 因为 JS 采用 IEEE 754 双精度版本( 64 位),并且只要采用 IEEE 754 的语言都有该问题 我们都知道计算机是通过二进制来存储东西的,那么 0.1 在二进制中会表示为: // (0011) 表示循环 0. 阅读全文
posted @ 2022-01-02 16:46 ·灯 阅读(204) 评论(0) 推荐(0) 编辑
摘要:涉及面试题: instanceof 的原理是什么? instanceof 可以正确的判断对象的类型,因为内部机制是通过判断对象的原型链中是不是 能找到类型的 prototype 实现一下 instanceof 首先获取类型的原型; 然后获得对象的原型; 然后一直循环判断对象的原型是否等于类型的原型, 阅读全文
posted @ 2022-01-02 16:32 ·灯 阅读(60) 评论(0) 推荐(0) 编辑
摘要:涉及面试题: new 的原理是什么?通过 new 的方式创建对象和通过字面量 创建有什么区别? 在调用 new 的过程中会发生四件事情 新生成了一个对象; 链接到原型; 绑定 this ; 返回新对象。 根据以上四个过程,我们也可以试着来自己实现一个 new 创建一个空对象, 获取构造函数, 设置空 阅读全文
posted @ 2022-01-02 16:24 ·灯 阅读(297) 评论(0) 推荐(0) 编辑
摘要:首先从以下几点来考虑如何实现这几个函数 不传入第一个参数,那么上下文默认为 window; 改变了 this 指向,让新的对象可以执行该函数,并能接受参数。 实现call 首先 context 为可选参数,如果不传的话默认上下文为 window; 接下来给 context 创建一个 fn 属性,并将 阅读全文
posted @ 2022-01-02 16:12 ·灯 阅读(40) 评论(0) 推荐(0) 编辑
摘要:进程与线程 -- 涉及⾯试题:进程与线程区别? JS 单线程带来的好处? JS 是单线程执⾏的,但是你是否疑惑过什么是线程? 讲到线程,那么肯定也得说⼀下进程。本质上来说,两个名词都是 CPU ⼯作时间⽚的⼀个描述。 进程描述了 CPU 在运⾏指令及加载和保存上下⽂所需的时间,放在应⽤上来说就代表了 阅读全文
posted @ 2021-12-30 18:01 ·灯 阅读(40) 评论(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 ·灯 阅读(38) 评论(0) 推荐(0) 编辑
摘要:涉及⾯试题: 为什么要使⽤模块化? 都有哪⼏种⽅式可以实现模块化,各有什么特点? 使⽤⼀个技术肯定是有原因的,那么使⽤模块化可以给我们带来以下好处: · 解决命名冲突 · 提供复⽤性 · 提⾼代码可维护性 ⽴即执⾏函数 在早期,使用 立即执⾏函数 实现模块化是常⻅的⼿段,通过函数作⽤域解决了命名冲突 阅读全文
posted @ 2021-12-30 16:46 ·灯 阅读(70) 评论(0) 推荐(0) 编辑
摘要:涉及面试题: 原型如何实现继承? Class 如何实现继承? Class 本质是什么? ⾸先先来讲下 class ,其实在 JS 中并不存在类, class 只是语法糖,本质还是函数。 class Person {} Person instanceof Function // true 组合继承 组 阅读全文
posted @ 2021-12-30 16:18 ·灯 阅读(84) 评论(0) 推荐(0) 编辑
摘要:涉及⾯试题:什么是提升?什么是暂时性死区?var、let 及 const 区别? 函数提升优先于变量提升,函数提升会把整个函数挪到作⽤域顶部,变量提升只会把声明 挪到作⽤域顶部。 var 存在提升,我们能在声明之前使⽤。 let 、 const 因为暂时性死区的原因,不能在声明前使⽤。 var 在全 阅读全文
posted @ 2021-12-30 15:58 ·灯 阅读(23) 评论(0) 推荐(0) 编辑
摘要:原型链就是多个对象通过 __proto__ 的⽅式连接了起来。 为什么 obj 可以 访问到 valueOf 函数,就是因为 obj 通过原型链找到了 valueOf 函数。 * Object 是所有对象的爸爸,所有对象都可以通过 `__proto__` 找到它 * Function 是所有函数的爸 阅读全文
posted @ 2021-12-30 15:45 ·灯 阅读(29) 评论(0) 推荐(0) 编辑
摘要:浅拷贝 ⾸先可以通过 Object.assign 来解决这个问题,很多⼈认为这个函数是⽤来 深拷⻉的。其实并不是, Object.assign 只会拷⻉所有的属性值到新的对象中,如果属性值是对象的话,拷⻉的是地址,所以并不是深拷⻉。 let a = { age: 1 } let b = Object 阅读全文
posted @ 2021-12-30 15:35 ·灯 阅读(39) 评论(0) 推荐(0) 编辑
摘要:什么是闭包? 闭包是指有权访问另外一个函数作用域中的局部变量的函数。 声明在一个函数中的函数,叫做闭包函数。 而且内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后。 闭包有三个特性: 1.函数嵌套函数; 2.函数内部可以引用外部的参数和变量; 3.参数 阅读全文
posted @ 2021-12-30 14:11 ·灯 阅读(46) 评论(0) 推荐(0) 编辑
摘要:对于 == 来说,如果对⽐双⽅的类型不⼀样的话,就会进⾏类型转换; 假如我们需要对⽐ x 和 y 是否相同,就会进⾏如下判断流程 ⾸先会判断两者类型是否相同。相同的话就是⽐⼤⼩了 类型不相同的话,那么就会进⾏类型转换 会先判断是否在对⽐ null 和 undefined ,是的话就会返回 true 阅读全文
posted @ 2021-12-29 23:03 ·灯 阅读(233) 评论(0) 推荐(0) 编辑
摘要:function foo() { console.log(this.a) } var a = 1 foo() const obj = { a: 2, foo: foo } obj.foo() const c = new foo() 对于直接调用 foo 来说,不管foo函数被放在什么位置,this 阅读全文
posted @ 2021-12-29 22:08 ·灯 阅读(168) 评论(0) 推荐(0) 编辑
摘要:一 谈谈对 keep-alive 的了解? keep-alive 是Vue内置的一个组件,可以使被包含的组件保留状态,避免重新渲染,其有以下特性: * 一般结合路由和动态组件一起使用,用于缓存组件; * 提供 include 和 exclude 属性,两者都支持字符串或正则表达式,include 表 阅读全文
posted @ 2021-08-25 16:33 ·灯 阅读(78) 评论(0) 推荐(0) 编辑
摘要:一 SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快 阅读全文
posted @ 2018-03-07 14:38 ·灯 阅读(188) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示