返回

写给女朋友的中级前端面试秘籍(拿15k+Offer不难)

前端

Flex布局

Flex布局是一种现代布局方式,可以轻松创建复杂、响应式的布局。它使用容器和项目的概念,容器定义了布局的整体结构,而项目则是容器中的元素。Flex布局的优势在于,它可以自动换行、对齐和分布项目,从而实现灵活的布局。

常用属性

  • flex-direction:定义主轴的方向,可以是row、column、row-reverse或column-reverse。
  • flex-wrap:定义是否换行,可以是nowrap、wrap或wrap-reverse。
  • justify-content:定义项目在主轴上的对齐方式,可以是flex-start、flex-end、center、space-between或space-around。
  • align-items:定义项目在交叉轴上的对齐方式,可以是flex-start、flex-end、center或stretch。
  • align-content:定义多行项目在交叉轴上的对齐方式,可以是flex-start、flex-end、center、space-between或space-around。

WeakMap

WeakMap是一种特殊的Map对象,它只能以复杂数据类型作为键,并且键值是弱引用。这意味着,当键值不再被任何其他变量引用时,它就会被垃圾回收。WeakMap的优势在于,它可以防止内存泄漏,因为键值不会阻止对象被垃圾回收。

常用方法

  • set(key, value):设置键值对。
  • get(key):获取键对应的值。
  • has(key):检查键是否存在。
  • delete(key):删除键值对。

深拷贝

深拷贝是指将一个对象的所有属性和嵌套对象都复制一份,这样修改副本不会影响原始对象。深拷贝通常需要借助递归实现,如果对象的值还是个对象,要进一步的深入拷贝,完全替换掉每一个复杂类型的引用。

实现方法

function deepCopy(obj) {
  if (typeof obj !== 'object' || obj === null) {
    return obj;
  }

  if (Array.isArray(obj)) {
    return obj.map(item => deepCopy(item));
  }

  const newObj = {};
  for (const key in obj) {
    newObj[key] = deepCopy(obj[key]);
  }

  return newObj;
}

React

React是一个JavaScript库,用于构建用户界面。它使用虚拟DOM来实现高效的渲染,并且提供了丰富的组件系统和Hooks API。React的优势在于,它可以轻松创建动态、交互式的用户界面,并且易于学习和使用。

核心概念

  • 组件:React应用程序的基本构建块,可以是函数组件或类组件。
  • 状态:组件的内部数据,可以通过useState钩子来管理。
  • 道具:组件从父组件接收的数据,可以通过props参数来访问。
  • 生命周期:组件从创建到销毁的一系列钩子函数,可以用来执行不同的操作。

总结

这篇文章提供了一份详细的中级前端面试秘籍,涵盖了Flex布局、WeakMap、深拷贝和React等核心知识点。希望你能从中学习到很多有用的东西,并在面试中取得优异的成绩。