前端面试知识点不完全手册

前端之家收集整理的这篇文章主要介绍了前端面试知识点不完全手册前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

JavaScript

作用域

作用域分静态作用域和动态作用域两种,其中静态作用域又被叫做词法作用域。在 JavaScript 中没有动态作用域,采用的是词法作用域,也就是说函数的作用域在函数定义的时候就决定了。

按照变量的有效范围可以分为全局作用域、函数作用域和块级作用域。其中,块级作用域需要配合 letconst 关键字。

继承

原型链:

  1. 实例对象通过 __proto__ 属性Object.getPrototypeOf() 访问原型对象;
  2. null 没有原型对象,并且是原型链的最后一个环节;
  3. 访问对象的属性时会从自身开始沿原型链查找,直到找到或到尾。

一个字面量的原型链如下:

字面量 ---> 内置对象.prototype ---> Object.prototype ---> null

当继承的函数调用时,this 指向的是当前继承的实例对象而非继承的函数所在的原型对象。

可以通过以下几种方式来创建对象和生成原型链:

  1. 语法结构(字面量);
  2. 构造函数
  3. Object.create() 方法
  4. class 关键字。

遍历

for...in

以任意顺序遍历一个对象的可枚举属性

for...of

作用于可迭代对象,如 ArrayStringMapSet 和 TypedArray。

事件

事件流

方式 传递方向 document ---> html ---> body ---> 目标对象 body ---> html ---> document 事件模型 模型 绑定方式 阶段