面试题之-深拷贝

深拷贝是前端面试题中经常用来考察前端开发工程师能力的一个题目,该题目会涉及如下考点:

  • JS基本数据类型和引用数据类型概念
  • 函数递归
  • while循环
  • 外部对象
  • 循环引用
  • 拷贝原型链属性
  • 拷贝特殊对象类型
  • 拷贝不可枚举属性
  • 拷贝Symbol属性

本文针对上述考点,由浅入深讨论JS深拷贝的实现。

继续阅读…

面试题之-扁平化数组

面试中经常会遇到一道扁平化数组的题目:写一个函数,将输入数组 [1, [2, [3, [4]], 5]] 转化为 [1, 2, 3, 4, 5]的形式。

一开始,我以为是通过此题来考察递归的使用,后来仔细一想,事情远远不止这么简单,本文试着通过几种方式的实现,来理解此题可能要考察的内容。

继续阅读…