一灯

  1. 原型链

我们每个 new 出来的实例,它有 prototype 以链的形式指向它的原型对象,它的原型对象又通过proto 指向 Object。

原型 – JS 的语言机制,也可以理解为是对象的proto属性或者是函数的 prototype 属性所指向的对象

原型对象 – 构造函数的 prototype 属性所指的对象

原型链 – 对象的proto访问器属性,或者[[Prototype]]内部属性指向的逐级向上最终为 null 的链式路径,有点绕口,大概的意思就是 object.proto(父级).proto(祖父级).null(最后的proto)

  1. Person.prototype.constructor == Person // 准则 1:原型对象(即 Person.prototype)的 constructor 指向构造函数本身

  2. person01.proto == Person.prototype // 准则 2:实例(即 person01)的proto和原型对象指向同一个地方

js 分为函数对象和普通对象,每个对象都有proto属性,但是只有函数对象才有 prototype 属性 Object、Function 都是 js 内置的函数, 类似的还有我们常用到的 Array、RegExp、Date、Boolean、Number、String

属性proto是一个对象,它有两个属性,constructor 和proto; 原型对象 prototype 有一个默认的 constructor 属性,用于记录实例是由哪个构造函数创建;

所有的函数的原型的上层原型都指向对象的原型

Function.__proto__-- > Function.prototype;

Function 函数不通过任何东西创建,js 引擎启动时,添加到内存中

Object.__proto__ == Function.prototype;

Object 是构造函数,在第二部分我们讲过所有的函数都是通过 new Function 创建了,因此 Object 相当于 Function 的实例

  1. js 运行机制

chrome 的 v8 引擎 先生成 一个运行环境,将我们的 js 代码进行预处理, 例如 var 等,先变量提升。然后将 script 作为进程里面的执行栈放入 抽出 micro 放入 队列里面。

  1. 常用的 es6 语法

promise , symbol , forEach, let, const,map

  1. babel 的了解(什么代码转 es5, 哪些不可以转)

babel 是我们进行一个语法降级的解决方案,例如 foreach 这个在一些古老的浏览器里面没有这个方法,我们必须讲他转换成

这种形式。

  1. webpack 优化,你都做了哪些

webpack 优化arrow-up-right

  1. 统计当前页面 setTimeout 定时器的执行次数(提示用 call, apply)

// 有思路 实现一个装饰器 在 setTimeOut 的前面统计 count

  1. 写一个深拷贝函数

3。 todolist 的功能组件

  1. vue 中 watch 和 computed

computed 相当于 lazy watch。当 data 发生变化时,我们可以设置 watch 进行监听其变化, 而 computed 更多用于计算两个数值,其不一定执行。

  1. 浏览器缓存,刷新和强刷

    浏览器缓存策略详解

  2. 然后根据简历,聊你的项目,你简历项目列出的那些点,都如何实现的,解决思路是啥等等

  3. 将 5 次 commit ,变为 1 次 commit

git rebase -i HEAD~5

最后更新于