一灯
原型链
我们每个 new 出来的实例,它有 prototype 以链的形式指向它的原型对象,它的原型对象又通过proto 指向 Object。
原型 – JS 的语言机制,也可以理解为是对象的proto属性或者是函数的 prototype 属性所指向的对象
原型对象 – 构造函数的 prototype 属性所指的对象
原型链 – 对象的proto访问器属性,或者[[Prototype]]内部属性指向的逐级向上最终为 null 的链式路径,有点绕口,大概的意思就是 object.proto(父级).proto(祖父级).null(最后的proto)
Person.prototype.constructor == Person // 准则 1:原型对象(即 Person.prototype)的 constructor 指向构造函数本身
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 函数不通过任何东西创建,js 引擎启动时,添加到内存中
Object 是构造函数,在第二部分我们讲过所有的函数都是通过 new Function 创建了,因此 Object 相当于 Function 的实例
js 运行机制
chrome 的 v8 引擎 先生成 一个运行环境,将我们的 js 代码进行预处理, 例如 var 等,先变量提升。然后将 script 作为进程里面的执行栈放入 抽出 micro 放入 队列里面。
常用的 es6 语法
promise , symbol , forEach, let, const,map
babel 的了解(什么代码转 es5, 哪些不可以转)
babel 是我们进行一个语法降级的解决方案,例如 foreach 这个在一些古老的浏览器里面没有这个方法,我们必须讲他转换成
这种形式。
webpack 优化,你都做了哪些
统计当前页面 setTimeout 定时器的执行次数(提示用 call, apply)
// 有思路 实现一个装饰器 在 setTimeOut 的前面统计 count
写一个深拷贝函数
3。 todolist 的功能组件
vue 中 watch 和 computed
computed 相当于 lazy watch。当 data 发生变化时,我们可以设置 watch 进行监听其变化, 而 computed 更多用于计算两个数值,其不一定执行。
浏览器缓存,刷新和强刷
然后根据简历,聊你的项目,你简历项目列出的那些点,都如何实现的,解决思路是啥等等
将 5 次 commit ,变为 1 次 commit
git rebase -i HEAD~5
最后更新于
这有帮助吗?