前端面试和一些建议

最近公司在招前端,我有跟着一起参与面试。我们主要负责面试的人,不会问那些什么闭包,原型链,他觉得那些东西在我们日常开发中用不到,问的基本都是一些工作中的问题。这些问题不是每次都问,但也就问这些了。我这里记录一下并且碎碎念一下。

因为我工作经验比较少,所以会比较注意项目职责中做的性能优化和适配,,还有优化底层逻辑。比如简历里的项目职责有写“针对小程序的性能进行优化,包括但不限于页面加载速度、交互流畅度等方面,并确保小程序在不同平台和设备上的兼容性”,“通过代码压缩、资源合并、缓存优化等手段提高网站或应用的加载速度和性能,提升用户体验”等。

我都会对这些进行提问,因为我在工作中没有做过这方面的工作,也比较感兴趣,但问的大部分面试者都回答不上,所以我的建议是项目职责写了的就一定要回答的上来,不然就不要写,强烈建议,不然你尴尬,我也有点尴尬。

还有就是男生不要留长指甲,面试了一个男生,指甲非常长,十个都长,就是和女生弄了甲片的长度一样长,然后也不修,没有甲型,就是真的会因为这个原因而不录取。

嗯,还有就是如果能力不达标,简历就写(包装?)的不要那么好,我看了一个小姐姐的简历,我还和另一个前端说,这个小姐姐应该可以,但在面试过程中,问的都是她简历里的工作职责,她都回答不上来,然后就问她如果自己在vue里封装一个弹窗,要怎么做,结构应该是什么样的,也回答不上来,就,我也不知道该怎么说了。

还有就是,我面试的话都会自己带一份简历以备不时之需,但面试的大部分面试者,都俩手空空,是只有我这样吗?emmm,不知道了。

我觉得我们的问题真的很人性化,不需要你死记硬背那些面试题,就问的都是平时工作中遇到的,和简历里自己提到的。希望大家和我以后面试都可以顺利通过,面试成功。我会对这些问题回答一下如果是我自己的话,怎么回答。(ps:我自己的工作经验还没有一年,就是我也不是大佬,是小白,有什么错误可以提出指正,仅供参考啊)嗯,希望有帮助到你?

  1. 你可以自己搭建项目吗?从什么开始入手
  2. 工作中遇到过最大的bug?
  3. 工作这么长时间有什么值得说的项目?
  4. 有对项目的目录进行过优化吗?
  5. 写一个项目会考虑那些问题?
  6. 近期有学到什么新的知识吗?
  7. 对现在智能化的东西有了解吗?
  8. 对后面的职业规划?
  9. 使用过pinia吗?常用的API?使用场景?
  10. 知道递归吗?使用场景?
  11. 知道或使用过hooks吗?使用场景
  12. 使用过echarts吗?有在echarts的基础上做过改动吗?
  13. var,const,let的区别,const不可以改变吗?
  14. js中的异步操作有那些?
  15. ref与reactive的区别与使用场景?
  16. 平时会在什么地方学习新知识?
  17. 对我们公司或对我们部门有什么想了解的?

对你有帮助吗?有的话点个赞或者收藏吧.

你可以自己搭建项目吗?从什么开始入手?

我在工作中还没有,基本公司都有模板。但如果我回答的话,可能会这么说,如下

首先就是需求分析,会选择合适的技术栈,是vue2还是vue3,项目初始化,构建工具是使用vite还是Webpack.使用什么UI框架或组件库,封装axios请求,然后确定路由是动态还是静态的等。
 

有对项目的目录进行过优化吗? 

我没有,但我去网上找了一下,

我采用了模块化的开发方式,将代码拆分为独立的模块或组件。这不仅提高了代码的可重用性,还使得项目的目录结构更加清晰。

我还遵循了命名规范,为文件和目录选择了有意义的名称。良好的命名习惯使得项目的目录结构更加易读易懂。

在资源管理方面,我合理管理了项目中的静态资源,并将不同类型的资源放置在不同的目录中。这有助于提高项目的可维护性。

我还对项目的构建流程进行了优化,使用构建工具进行自动化构建、代码压缩、文件合并等操作,以提高构建过程的效率和可靠性。

最后,我定期审查和优化项目的目录结构,以适应新的需求和最佳实践。我相信持续的优化工作可以提高项目的质量和开发效率。

写一个项目会考虑那些问题?

  1. 需求分析:在开始编写项目之前,首先需要对项目的需求进行全面的分析和理解。这包括确定项目的功能、目标用户、用户需求、技术需求等。只有清楚地了解项目的需求,才能有针对性地进行后续的规划和开发。

  2. 技术选型:在确定项目的需求之后,需要根据项目的特点和需求选择合适的技术栈。这包括选择前端框架(如React、Vue.js、Angular等)、构建工具(如Webpack、Parcel等)、状态管理库、UI组件库等。技术选型的合理性对项目的后续开发和维护具有重要影响。

  3. 项目架构设计:在确定了技术栈之后,需要对项目的架构进行设计。这包括确定项目的目录结构、模块划分、组件设计等。良好的项目架构设计能够提高项目的可维护性、可扩展性和性能。

  4. 数据设计:对于涉及数据操作的项目,需要进行数据设计,包括数据库设计、数据接口设计等。合理的数据设计能够保证数据的完整性、一致性和安全性。

  5. 安全性考虑:在编写项目时需要考虑安全性问题,包括防止XSS攻击、CSRF攻击、SQL注入等。合理的安全性设计能够保护用户数据和系统安全。

  6. 性能优化:项目上线后需要考虑性能优化问题,包括页面加载速度优化、资源压缩、缓存策略等。优化项目的性能能够提升用户体验和网站的排名。

  7. 跨平台兼容性:在编写项目时需要考虑跨平台兼容性,包括不同浏览器、不同设备的兼容性。合理的兼容性设计能够确保项目在不同平台上的正常运行。

  8. 测试策略:编写项目时需要考虑测试策略,包括单元测试、集成测试、端到端测试等。合理的测试策略能够提高项目的质量和稳定性。

 使用过pinia吗?常用的API?使用场景?ai回答

我确实有使用过 Pinia,它是一个基于 Vue 3 的状态管理库,专门为 Vue 3 应用程序设计。Pinia 提供了一种简洁且优雅的方式来管理应用程序的状态,并且与 Vue 3 的响应式系统无缝集成。

在 Pinia 中,最常用的 API 包括:

  1. defineStore:用于定义一个状态管理仓库(Store),通过该 API 可以定义状态、获取状态、修改状态等操作。

  2. useStore:用于在组件中使用状态管理仓库,返回一个代表该仓库的实例,通过该实例可以访问仓库中定义的状态和方法。

  3. createPinia:用于创建 Pinia 实例,可以通过该实例注册和管理应用程序中的所有状态管理仓库。

  4. store.$state:用于访问状态管理仓库中的状态,可以直接在组件中通过 $state 访问状态。

  5. store.$actions:用于访问状态管理仓库中的动作(Actions),可以通过 $actions 调用仓库中定义的动作。

  6. store.$getters:用于访问状态管理仓库中的 getters,可以通过 $getters 获取仓库中定义的 getters。

  7. store.$subscribe:用于在组件中订阅状态管理仓库中状态的变化,当状态发生变化时,会触发相应的回调函数。

  8. store.$reset:用于重置状态管理仓库的状态,将状态恢复到初始值。

使用 Pinia 的场景主要包括:

  1. 大型应用程序:Pinia 适用于大型应用程序的状态管理,它提供了一种清晰且可维护的方式来管理应用程序的状态,使得代码结构更加清晰易懂。

  2. 跨组件状态共享:Pinia 支持在多个组件之间共享状态,可以在应用程序中方便地实现跨组件状态共享。

  3. 类型安全:Pinia 提供了类型安全的状态管理方案,可以有效地避免状态相关的错误,并提高代码的健壮性和可维护性。

  4. Vue 3 生态集成:Pinia 是专为 Vue 3 设计的状态管理库,与 Vue 3 的响应式系统无缝集成,可以充分利用 Vue 3 的特性和生态系统。

总的来说,Pinia 是一个功能强大且易于使用的 Vue 3 状态管理库,适用于大型应用程序的状态管理,能够提高代码的可维护性和可测试性,是 Vue 3 应用程序开发中的一种理想选择。

或者

1. pinia 和 vuex 具有 相同的功效, 是 Vue 的存储库,它允许您跨组件/页面共享状态。2. 设计使用的是 Composition api,更符合vue3的设计思维。3. Pinia 对 Vue 2 和 Vue 3 都有效,并且不需要您使用组合 API

2、1 Vue2 和 Vue3 都能支持。2. 抛弃传统的 Mutation ,只有 state, getter 和 action ,简化状态管理库。3. 不需要嵌套模块,符合 Vue3 的 Composition api,让代码扁平化。4. TypeScript支持。5. 代码简介,很好的代码自动分割 总结 : Pinia的优势就是,更加 简洁 的语法,完美支持Vue3的Composition api 和 对TypeSccript 的完美支持。

对现在智能化的东西有了解吗?

其实是想问对AI了解吗?比如说会用ChatGPT辅助写代码吗,我们前端想听到的是会,因为这样会觉得你是一个对新东西接受了比较高的人,不知道同样的问题其他的面试官想听到的答案是什么,但我觉得可以说会,有时候遇到一些代码上的问题可以找它解决,有ChatGPT,或者国内的讯飞星火等 

var,const,let的区别,const不可以改变吗? 

区别

var:

  • 使用 var 声明的变量属于函数作用域或全局作用域(如果在函数外声明),而不是块级作用域。
  • var 声明的变量可以被重复声明,而且不会报错,这可能导致意外的覆盖。
  • 声明提升:var 声明的变量会在其所在函数或全局范围内提升到函数或全局作用域的顶部,但初始化的值不会提升。

const:

  • 使用 const 声明的变量是常量,一旦被赋值就不能再被修改。
  • 声明 const 变量时必须进行初始化,否则会抛出 SyntaxError 错误。
  • const 声明的变量也具有块级作用域。

let:

  • 使用 let 声明的变量具有块级作用域,只在声明的块级作用域内有效。
  • 不允许重复声明同一变量,如果在同一作用域内重复声明同一变量,会抛出 SyntaxError 错误。
  • 声明提升:和 var 不同,let 声明的变量在块级作用域内是不会被提升的。

const不可以改变吗?

因为你说const一旦赋值就不能被修改,进而引出这个问题

所以对于对象和数组等复合类型数据,const 只保证了变量指向的内存地址不会改变,而不是对象或数组本身的内容不可修改。

const PI = 3.14;
PI = 3; // Error: Assignment to constant variable.const obj = { name: 'John' };
obj.name = 'Alice'; // No error, because only the property of the object is being modified, not the reference itselfconsole.log(obj); // { name: 'Alice' }obj = { age: 30 }; // Error: Assignment to constant variable.

在上面的例子中,对于基本类型的常量,尝试重新赋值会导致错误。但是对于对象 obj,虽然我们不能重新赋值一个新的对象给 obj,但是我们可以修改对象的属性,因为对象的引用并没有改变。

平时会在什么地方学习新知识? 

提问时也可能问会逛什么社区?记住,就是想问你有没有逛csdn什么的,有一个面试者不知道没听清还是怎么了,回答我们,平时比较宅,不怎么出去逛。

csdn,blili,知乎,掘金,github等,不要在回答没事干比较宅,不出去逛。

对后面的职业规划?

这个是肯定要在面试之前要想好的,这个问题应该是每次面试必问的吧?
如果你目前前端技术还不怎么样,就说近期把js所有都搞懂什么的,或者你对后端感兴趣,有Python也可以说后面想往全栈发展。比如我最近打算看一下那个javascript高级程序设计。

对基础知识了解加深一下,你也可以说对tree.js感兴趣,反正,吹嘛,一年两年以后不知道还在不在这个公司了呢。还有的面试者自学了nood.js,python说后面想自己一个网站,卖课什么的,反正这些目前我都不太懂,和另一个面试官聊的(全栈),反正就基于目前的能力对后面进行职业规划吧。

 

今天先这样,后面慢慢更新。。。。

最近准备学javascript基础,可能在这个账号会更新学习记录和 心得,如果感兴趣的话可以关注一下哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/6020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows server2016关闭ie增强

要关闭Windows Server 2016上的IE增强安全配置,请按照以下步骤操作: 打开“服务器管理器”。点击“本地服务器”。在服务器管理器中,找到“IE增强的安全配置”,点击旁边的“启用”,打开“Internet Explorer增强的安全配…

香港立法會議員容海恩女士確定出席“邊緣智能2024 - AI開發者峰會”

隨著AI技術的飛速發展,全球正步入邊緣計算智能化與分布式AI深度融合的新紀元,共同演繹著分布式智能創新應用的壯麗篇章。在這一背景下,邊緣智能,作為融合邊緣計算和智能技術的新興領域,正逐漸成為推動AI發展的關鍵力量…

QT5带UI的常用控件

目录 新建工程,Qmainwindow带UI UI设计器 常用控件区 Buttons 按钮 containers 容器 控件属性区域 对象监视区 布局工具区 信号与槽区 简单例子1 放置一个按钮控件,改文本为发送,该按键为Button1; 按钮关联信号和…

STM32开启停止模式,用外部中断唤醒程序运行

今天学习了一下STM32的停止模式,停止模式下,所有外设的时钟和CPU的电源都会被关闭,所以会很省电,打破这种停止模式的方式就是外部中断可以唤醒停止模式。要想实现这个功能,其实设置很简单的,总共就需要两步…

基于GWO灰狼优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1卷积神经网络(CNN)在时间序列中的应用 4.2 长短时记忆网络(LSTM)处理序列依赖关系 4.3 注意力机制(Attention) 4…

Visio 2021 (64bit)安装教程

Visio 2021 (64bit)安装教程 ​ 通知公告 Visio 2021 (64位) 是一款流程图和图表设计工具,主要用于创建和编辑各种类型的图表和图形。它提供了一个直观的界面和丰富的功能,可以帮助用户快速绘制专业的流程图、组织结构图、网络图、平面图、数据库模型等。 具体来说,Visio 20…

笔记1--Llama 3 超级课堂 | Llama3概述与演进历程

1、Llama 3概述 https://github.com/SmartFlowAI/Llama3-Tutorial.git 【Llama 3 五一超级课堂 | Llama3概述与演进历程】 2、Llama 3 改进点 【最新【大模型微调】大模型llama3技术全面解析 大模型应用部署 据说llama3不满足scaling law?】…

05.Git标签管理

Git标签管理 #创建一个标签 [rootgitlab ~/demo]#git tag -a "v1.1" -m "first" [rootgitlab ~/demo]# git tag v1.1 #查看标签信息 [rootgitlab ~/demo]# git show v1.1 tag v1.1 Tagger: quyunlong <quyunlongfoxmail.com> Date: Tue Oct 18…

【DevOps】发布自建镜像到Harbor镜像仓库

本博文介绍了开源的本地部署Docker镜像仓库Harbor&#xff0c; 并讲解怎么样在ubuntu20.04上安装配置Harbor&#xff0c;最后用一个Web应用发布成镜像&#xff0c;推送到镜像仓库的例子结尾。学习本博文并按照步骤进行操作&#xff0c;你将掌握搭建本地镜像仓库&#xff0c;并将…

OpenCV 实现重新映射(53)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV 实现霍夫圆变换(52) 下一篇 :OpenCV实现仿射变换(54) 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 一个。使用 OpenCV 函数 cv&#xff1a;&#xff1a;remap 实现简…

STM32——点亮第一个LED灯

代码示例&#xff1a; #include "stm32f10x.h" // Device headerint main() {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启时钟GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;GPIO_InitSt…

c# winform快速建websocket服务器源码 wpf快速搭建websocket服务 c#简单建立websocket服务 websocket快速搭建

完整源码下载----->点击 随着互联网技术的飞速发展&#xff0c;实时交互和数据推送已成为众多应用的核心需求。传统的HTTP协议&#xff0c;基于请求-响应模型&#xff0c;无法满足现代Web应用对低延迟、双向通信的高标准要求。在此背景下&#xff0c;WebSocket协议应运而生…

【51单片机普中板子74LS138+245+573可调时钟整点蜂鸣中级应用】2022-12-7

缘由用51单片机普中开发板实现数字时钟-嵌入式-CSDN问答 #include "reg52.h" //定义按键 sbit key0P3^0; sbit key1P3^1; sbit key2P3^2; sbit key3P3^3; //定义数码管位驱运位 sbit L1P2^2; sbit L2P2^3; sbit L3P2^4; sbit beepP2^5; unsigned char code ShuMaGua…

一周零碎时间练习微服务(nacos,rq,springcloud,es等)内容

目录 1 总览1.1 技术架构1.2 其他1.2.1 数据库1.2.2 后端部分1.2.2.1 复习feign1.2.2.2 复习下网关网关的核心功能特性&#xff1a;网关路由的流程断言工厂过滤器工厂全局过滤器 过滤器执行顺序解决跨域问题 1.2.2.3 es部分复习 1.2.3 前端部分 2 day1 配置网关2.1 任务2.2 网关…

ThreeJS:项目搭建

介绍如何基于Vite、Vue、React构建ThreeJS项目。 Vite项目 1. 初始化项目&#xff0c;命令&#xff1a;npm init vitelatest&#xff0c; 2. 安装依赖&#xff0c;命令&#xff1a;npm install&#xff0c; 3. 启动项目&#xff0c;命令&#xff1a;npm run dev。 4. 样式初始…

【LeetCode刷题记录】简单篇-94-二叉树的中序遍历

【题目描述】 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 【测试用例】 示例1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例2&#xff1a; 输入&#xff1a;root [ ] 输出&#xff1a;[ ] 示例3&#xff1a; 输入…

ThreeJS:本地部署官网文档与案例

部署方式 部署之前请确保已经配置好node.js环境。 1. 下载ThreeJS源码 ThreeJS的GitHub地址&#xff1a;GitHub - mrdoob/three.js: JavaScript 3D Library.&#xff0c;可以简单查看ThreeJS当前版本&#xff1a;r164&#xff0c; 我们可以选择对应的版本&#xff08;此处为r1…

win11 Terminal 部分窗口美化

需求及分析&#xff1a;因为在 cmd、anaconda prompt 窗口中输入命令较多&#xff0c;而命令输入行和输出结果都是同一个颜色&#xff0c;不易阅读&#xff0c;故将需求定性为「美化窗口」。 美化结束后&#xff0c;我在想是否能不安装任何软件&#xff0c;简单地通过调整主题颜…

备考2024年上海初中生古诗文大会:单选题真题示例和独家解析

现在距离2024年初中生古诗文大会还有四个多月时间&#xff0c;备考要趁早&#xff0c;因为知识点还是相对比较多的。这些知识点对于初中语文的学习也是很有帮助的。 我们继续来看10道历年真题&#xff0c;这些真题来自于过去历年真题的去重、汇总&#xff0c;每道题都有参考答…

2-手工sql注入(进阶篇) sqlilabs靶场1-4题

1. 阅读&#xff0c;学习本章前&#xff0c;可以先去看看基础篇&#xff1a;1-手工sql注入(基础篇)-CSDN博客 2. 本章通过对sqlilabs靶场的实战&#xff0c;关于sqlilabs靶场的搭建&#xff1a;Linux搭建靶场-CSDN博客 3. 本章会使用到sqlmap&#xff0c;关于sqlmap的命令&…