返回
写给女朋友的中级前端面试秘籍(拿15k+Offer不难)
前端
2024-01-11 16:54:35
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等核心知识点。希望你能从中学习到很多有用的东西,并在面试中取得优异的成绩。