最近一直有参与公司前端面试这一块,所以在这里把面试会问到的问题和思路整理一下,顺便梳理一下自己的知识体系。 问题由上至下,由深至浅。
基础
1.原型链
- 什么是原型链
由于JS是一个面向对象编程的语言,万物皆对象,而对象的构造函数有一个属性为prototype,称为原型,当一个示例查找自己的属性时,先在自己的实力上查找,如果没有找到,便往上一层层从原型对象上查找,直到找到Object对象上(万物的原型),结果为空时,报错undefined
- 原型链可以用来做什么
继承: 1.寄生式继承 2.
- 原型链继承的缺点
- 组合式继承
2.作用域
- 什么是作用域
- 块级作用域和函数作用域的区别
- 暂时性死区
- 如何在ES5中实现一个块级作用域
3.this相关
- call, apply, bind的区别
- bind的实现原理
- 函数柯里化
- 闭包
- 词法作用域和动态作用域
4.闭包
- 什么是闭包
- 什么情况下产生闭包
- 闭包的优缺点
- vue中闭包的使用
- 如何使用闭包实现一个模块化(CMD等)
框架
1.vue
- v-for为什么需要绑定一个key
- 绑定key为什么不推荐数字