「前端面试宝典」 - 猿媛之家(21.06)

devtools/2025/3/14 18:42:26/

模拟面试是提高个人沟通技巧的最有效方式
请记住:思维的深度,决定你人生的高度。胸怀的广度,决定你事业的长度。
面试官关注的重点不是题目的答案,而是求职者解题的思路与方法.
以排序算法为例:时间利用是否高效?空间利用是否高效?数据量不大时也许没有问题,如果是海量数据?是否考虑了相关环节,例如数据的“增删改查”?是否考虑了代码的可扩展性、安全性、完整性以及鲁棒性?
明智的跳槽是因为有更好的机会,不仅仅是因为目前的机会不够好,否则就成了为跳而跳。
因为规划是预测未来的行动,确定将来的目标,因此需要非常的详细与明确,包括何时实施、何时完成、时序安排、检查机制等
1.说话分轻重缓急与面试官交谈时,不能全是一个语调平铺直叙,这样容易让面试官昏昏欲睡,提不起精神,最好能够分轻重缓急,有所侧重,说到重点难点时,可以适当提高一下嗓门
引导面试官提问自己擅长的内容体现了求职者的反应能力与应变能力,需要求职者多动脑筋,多思考,多琢磨。如果条件允许,可以在求职准备的时候好好想想此方面的内容


函数式编程有许多优点,本节只列出了其中的两点。

1)函数式编程可将复杂的任务分解成一个个既简单又独立的纯函数,有利于提高代码的模块化、复用性、预测性以及可测试性。
2)函数式编程有很高的自由度,可以采用更符合人类思维习惯的链式写法,以此提高代码的可读性。

JSX

在JSX中传入的值都会自动被HTML转义,这样可以防止XSS攻击,例如,输入“<p></p>”,输出“<p></p>”,如下所示

虚拟 dom

fiber

Fiber是React v16中新的调和(Reconciliation)引擎,重构了React的核心算法。它的主要特性是增量渲染,即把渲染任务拆分成任务块,并将任务分配到多个帧上。目标是扩大动画、布局和手势等领域的适用性,提升交互体验。

组件

组件(Component)由若干个React元素组成,包含属性、状态和生命周期等部分,满足独立、可复用、高内聚和低耦合等设计原则

React组件的state和props有哪些区别?

答案:虽然state和props都会影响组件的渲染,但两者在功能上是不同的,主要区别如下:1)state是组件私有的内部数据,而props是从父组件传递过来的外部数据。2)state可由组件自身修改,而它的props是只读的,只有父组件才有权限修改,即传递新数据进来。

scoped package

在npm中,什么是域级包(Scoped Package)?

前端利器

webpack

目前,webpack的最新版本是5.0.0,配置文件(webpack.config.js)的基本结构如下所示,包含了它的4个核心概念:入口(entry)、输出(output)、加载器(loader)和插件(plugin)

代码分离

代码分离(Code Splitting)能将代码拆成多块,分离到不同的bundle中,这些文件既能按需加载,也能被浏览器缓存
代码分离的方法有3种,分别是入口起点(Entry Point)、防止重复(PreventDuplication)和动态导入(Dynamic Import
接下来用一个例子来演示SplitChunksPlugin的用法,首先创建两个文件:index.js和list.js,它们都导入了第三方库lodash,代码如下所示。如果没有将依赖的lodash提取出来,那么两者生成的bundle文件都会包含lodash。
配置中的chunks参数可指定所要提取的模块,有3个关键字可供选择:initial、async和all,分别表示初始加载、按需加载和两种情况的模块

plugin

2.如何清理webpack输出目录中的文件?答案:利用clean-webpack-plugin可在每次打包到输出目录之前,对其进行清理,插件的安装命令如下所示。

Tree Shaking

git

于是Linux的作者Linus Torvalds就决定开发一款能替代BitKeeper的分布式版本控制系统(即Git),在花费十天的时间后发布了Git的第一个版本。
Git更像是一个文件系统,它存储的是文件快照(Snapshot)。
rm命令的后面既可以跟文件或目录的名称,也能跟Glob模式的正则表达式,例如,删除扩展名为“.log”的文件,代码如下所示。
Git之所以能高性能地处理分支,主要得益于其与众不同的存储设计:弃文件变化,取文件快照。每次commit提交,Git都会创建一个提交对

事件

React在原生事件的基础上,重新设计了一套跨浏览器的合成事件(SyntheticEvent), 在事件传播、注册方式和事件对象等多个方面都做了特别的处理

路由

在网络工程中,路由能保证信息从源地址传输到正确地目的地址,避免在互联网中迷失方向。而前端应用中的路由,其功能与之类似,也是保证信息的准确性,只不过来源变成URL,目的地变成HTML页面

如何在React Router中设置默认页面?答案:只要不给路由组件Route定义path属性,就能直接匹配成功,再配合Switch组件就能实现默认页面的设置,如下所示

下面是一个Context的示例,其中Son组件包含了多个Consumer组件,该示例存在性能方面的问题,该如何解决?

最后编辑于:2025-02-05 20:50:15


喜欢的朋友记得点赞、收藏、关注哦!!!


http://www.ppmy.cn/devtools/159849.html

相关文章

for in进行遍历时配合hasOwnProperty过滤原型链上的属性

在 JavaScript 中&#xff0c;使用 for...in 循环进行遍历时&#xff0c;会遍历到对象原型链上的可枚举属性。下面为你详细解释&#xff1a; 原理 for...in 循环用于遍历对象的可枚举属性&#xff0c;它不仅会遍历对象自身的可枚举属性&#xff0c;还会遍历对象原型链上的可枚…

Linux内存管理:深度解析与探索

你是否想过&#xff0c;在 Linux 系统中&#xff0c;当你打开一个程序、浏览网页或者处理文件时&#xff0c;这些数据都存放在哪里呢&#xff1f;答案就是内存。Linux 内存管理就像是一个超级大管家&#xff0c;它负责管理着系统中所有数据的 “家”。这个 “家” 的空间有限&a…

Dify+Notion本地化打造专属知识库

创建知识库并上传文档大致分为以下步骤&#xff1a; 通过上传本地文件、导入在线数据或创建一个空的知识库。 1 导入文本数据 轻点 Dify 平台顶部导航中 “知识库” → “创建知识库”&#xff1a; 可上传本地文件、导入在线数据两种方式上传文档至知识库内。 1.1 上传本地…

CPP集群聊天服务器开发实践(七):Github上传项目

github链接&#xff1a;GitHub - arduino-ctrl/ClusterServer: 基于jsonmuduomysqlnginxredis的集群服务器与客户端通信源码 步骤如下&#xff1a; 1. github新建代码仓库&#xff0c;复制url 2. git clone https://github.com/arduino-ctrl/ClusterServer.git 3. 将项目文件…

4090单卡挑战DeepSeek r1 671b:尝试量化后的心得的分享

引言&#xff1a; 最近&#xff0c;DeepSeek-R1在完全开源的背景下&#xff0c;与OpenAI的O1推理模型展开了激烈竞争&#xff0c;引发了广泛关注。为了让更多本地用户能够运行DeepSeek&#xff0c;我们成功将R1 671B参数模型从720GB压缩至131GB&#xff0c;减少了80%&#xff…

PyCharm结合DeepSeek-R1

PyCharm结合DeepSeek-R1&#xff0c;打造专属 AI 编程助手 在程序员的日常工作中&#xff0c;提高编程效率、快速解决代码问题是重中之重。今天给大家分享一个强强联合的组合 ——PyCharm 插件 Continue 与 DeepSeek-R1&#xff0c;它们能帮你打造出强大的个人 AI 编程助手。 …

小鹏自动驾驶 xnet 技术细节

小鹏汽车的XNet技术是其自动驾驶系统XPILOT的核心感知架构之一&#xff0c;主要应用于XPILOT 4.0及更高版本。XNet的设计目标是实现更高效的多传感器融合、动态环境建模以及实时决策能力。以下是XNet技术的关键细节和特点&#xff1a; 1. 多传感器融合与数据统一 多模态输入&am…

面试题之Vuex,sessionStorage,localStorage的区别

Vuex、localStorage 和 sessionStorage 都是用于存储数据的技术&#xff0c;但它们在存储范围、存储方式、应用场景等方面存在显著区别。以下是它们的详细对比&#xff1a; 1. 存储范围 Vuex&#xff1a; 是 Vue.js 的状态管理库&#xff0c;用于存储全局状态。 数据存储在内…