面试系列 - JS相关

110 阅读1分钟

最近一直有参与公司前端面试这一块,所以在这里把面试会问到的问题和思路整理一下,顺便梳理一下自己的知识体系。 问题由上至下,由深至浅。

基础

1.原型链

  • 什么是原型链

由于JS是一个面向对象编程的语言,万物皆对象,而对象的构造函数有一个属性为prototype,称为原型,当一个示例查找自己的属性时,先在自己的实力上查找,如果没有找到,便往上一层层从原型对象上查找,直到找到Object对象上(万物的原型),结果为空时,报错undefined

  • 原型链可以用来做什么

继承: 1.寄生式继承 2.

  • 原型链继承的缺点
  • 组合式继承

2.作用域

  • 什么是作用域
  • 块级作用域和函数作用域的区别
  • 暂时性死区
  • 如何在ES5中实现一个块级作用域

3.this相关

  • call, apply, bind的区别
  • bind的实现原理
    • 函数柯里化
    • 闭包
  • 词法作用域和动态作用域

4.闭包

  • 什么是闭包
  • 什么情况下产生闭包
  • 闭包的优缺点
  • vue中闭包的使用
  • 如何使用闭包实现一个模块化(CMD等)

框架

1.vue

  • v-for为什么需要绑定一个key
  • 绑定key为什么不推荐数字