随笔分类 - 面试
摘要:对象类型与原始值类型的不同之处? 原始值类型保存在栈中,值是直接存储在变量访问的位置, 复制原始类型变量的值时,会将值拷贝一份,和原来的值是相互独立的 引用变量的名称储存在栈中,但是把其实际对象储存在堆中,且存在一个指针由变量名指向储存在堆中的实际对象,复制对象类型变量的值时,会将存储在变量中的值拷
阅读全文
摘要:什么是原型,什么是原型链 每一个构造函数都有一个原型对象属性prototype,每一个JavaScript对象在创建的时候就会关联这个对象,这个对象就是原型,包含了很多属性 实例化的对象中的__proto__会指向这个原型对象属性prototype 原型链就是多个对象通过 proto 的方式连接了起
阅读全文
摘要:promise的实现 https://www.cnblogs.com/dark-duck/p/14325604.html 文件的分片上传断点续传,还有通常说的秒传 https://www.cnblogs.com/dark-duck/p/14326058.html 函数柯里化 https://www.
阅读全文
摘要:事件触发的几个阶段 捕获阶段:事件从根节点流向目标节点,途中流经各个DOM节点,在各个节点上触发捕获事件,直到达到目标节点。 目标阶段:事件到达目标节点时,就到了目标阶段,事件在目标节点上被触发 冒泡阶段:事件在目标节点上触发后,不会终止,一层层向上冒,回溯到根节点 为什么通常在冒泡阶段执行事件 兼
阅读全文
摘要:什么是函数柯里化,有什么作用 在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。 主要作用 参数复用 提前返回 – 返回接受余下的参数且返回结果的新函数 延迟执行 – 返回新函数,等待执行。 function add(a, b) { return a +
阅读全文
摘要:async实现 https://www.cnblogs.com/dark-duck/p/14321687.html 理论以及dom相关 https://www.cnblogs.com/dark-duck/p/14321961.html
阅读全文
摘要:考察隐式类型转换,下面if为真的有哪些 if([]) if({}) if([]==false) if({}==false) 第一个为真,[]会被转换成true 第二个为真,[]会被转换成true 在if中单独会被转换成false的情况 数字0 NaN 空字符串 null或undefined 第三个为
阅读全文
摘要:// gen 为generator 实现Async的主要思路 Async返回的是一个promise对象 使用一个step对generator进行遍历 使用一个Promise.resolve()来拿到每个yield的返回值,并且在下一次调用时传入,循环以往直到结束 有错误使用throw方法抛出,在ge
阅读全文
摘要:简述 首先我们知道generator的内部实现采用了一种类似于协程的方法,即在在函数执行的过程之中遇到yield关键字时,就会暂时退出堆栈,但是并不消失,里面的所有变量和对象会冻结在当前状态。等到对它执行next命令时,这个上下文环境又会重新加入调用栈,冻结的变量和对象恢复执行。 同步任务 对于同步
阅读全文
摘要:BFC: 块级格式化上下文(Block Formatting Contexts) BFC是Web页面的可视化CSS渲染的一部分,是布局过程中生成块级盒子的区域,也是浮动元素与其他元素的交互限定区域 特点 说白了BFC就是一种css盒模型的渲染规则。具有以下规则 BFC它是一个独立的渲染区域,只有Bl
阅读全文
摘要:什么是闭包? 闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁 function sum (){ let i = 0 return funct
阅读全文
摘要:promiseAll实现 https://www.cnblogs.com/dark-duck/p/14305153.html 深拷贝实现 https://www.cnblogs.com/dark-duck/p/14305335.html es5实现继承 https://www.cnblogs.com
阅读全文
摘要:几种常见for循环的区别与不足之处 (for,for of,for in ,foreach) 区别通过作用体现 foreach 作用:用于调用数组的每个元素,并将元素传递给回调函数,回调函数的三个分别是value,index,arr(数组本身) 不足: 不能同时遍历多个集合,在遍历的时候无法修改和删
阅读全文
摘要:继承的含义 父类公有属性和方法为子类公有属性和方法 父类私有属性和方法为子类私有属性和方法 原型链继承 + 构造函数继承 = 组合继承 构造函数继承继承不到父类原型上的属性和方法 原型链继承父类的修改会影响子类的实例 结合二者 function Father(name) { this.name =
阅读全文