前端面试题系列
文章平均质量分 86
前端面试题系列篇——Vue、React、JavaScript、HTML&CSS、计算机网络、浏览器、工程化、性能优化和服务端
Web面试那些事儿
前端面试小册、简历优化修改、大厂内推以及更多阿里、字节大厂面试真题合集,添加小助理yinke0036免费领取,和阿里p8大佬一起交流,更有一对一面试指导!!!
展开
-
当你被问到前端模块化
最近一个前同事和我聊天,聊到他去面试的时候,被面试官问到前端模块化的问题,他的回答换来的是面试官的一句“你说了,但是好像又没说”,他备受打击,怀疑人生的问我前端模块化到底是啥?说他好像知道,又好像说不出所以然来,所以就有了这一份关于模块化的内容,来一起捋一捋问问题一般是从总体追问到细节如果面试问到关于模块化的问题,要有清晰的条理去回答,先回答总体的概念,如果有追问,再根据细节回答即可提示:面试你的人其实不一定需要你一口气说完多深的理解,你可以用简单易懂的大白话,条理清晰即可,先抛一下。原创 2024-01-17 10:00:00 · 803 阅读 · 0 评论 -
面试贼坑的十道js面试题(我只会最后一题)
现在前端面试经常遇到奇葩的题,有的听都没听过,何谈能答对,这些是小伙伴们投稿的题,大家来看看,出这些题的人,都优秀到不行啊,想要拿到满意的offer,不得不卷啊,头疼一批null就出了一个 bug。根据 type tags 信息,低位是 000,因此 null被判断成了一个对象。这就是为什么 typeofnull的返回值是 "object"。关于 null的类型在 MDN 文档中也有简单的描述:typeof - java | MDN。原创 2024-01-09 10:00:00 · 976 阅读 · 0 评论 -
面试官 :[] == ! [] 为什么返回 true ?
在 JavaScript 学习过程中,往往出现一些与我们常理相违背的结果,比如我们今天的论题[] ==![],它的返回的结果竟然是true,这着实让初学者感到困惑。因为根据直觉,[]和![]两者应该是不相等的。面试官恰恰就会抓住这一点,对程序员们进行考察。而本文将结合官方文档对该题进行深度剖析。原创 2024-01-08 11:46:07 · 951 阅读 · 0 评论 -
前端基础面试题(HTML,CSS,JS)
var定义的变量,是函数作用域,没有块的概念,可以跨块访问, 不能跨函数访问,有变量提升。let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问,无变量提升,不可以重复声明。const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改,无变量提升,不可以重复声明。var不存在暂时性死区,let和const存在暂时性死区let和const创建的全局变量没有给window设置相应的属性暂时性死区:使用命令声明变量之前,该变量都是不可用的。原创 2024-01-09 10:00:00 · 853 阅读 · 0 评论 -
前端Vue基础面试题
如果你现在正在找工作,可以私信“web”或者直接添加小助理进群领取前端面试小册、简历优化修改、大厂内推以及更多阿里、字节大厂面试真题合集,和p8大佬一起交流。原创 2024-01-08 10:00:00 · 837 阅读 · 0 评论 -
Vue2.x响应式原理
如果你现在正在找工作,可以私信“web”或者直接添加下方小助理进群领取前端面试小册、简历优化修改、大厂内推以及更多阿里、字节大厂面试真题合集,和p8大佬一起交流。原创 2024-01-07 10:00:00 · 738 阅读 · 0 评论 -
前端React基础面试题
缓存的结果是函数,主要用于缓存函数,应用场景如需要缓存的函数,因为函数式组件每次任何一个state发生变化,会触发整个组件更新,一些函数是没有必要更新的,此时就应该缓存起来,提高性能,减少对资源的浪费;事件的执行顺序为原生事件先执行,合成事件后执行,合成事件会冒泡绑定到 document 上,所以尽量避免原生事件与合成事件混用,如果原生事件阻止冒泡,可能会导致合成事件不执行,因为需要冒泡到document 上合成事件才会执行。两者接收的参数都是一样的,第一个参数表示一个回调函数,第二个表示依赖的数据。原创 2024-01-06 10:00:00 · 365 阅读 · 0 评论 -
前端基础手撕题
ES5方法:使用map存储不重复的数字。原创 2024-01-05 18:15:01 · 390 阅读 · 0 评论 -
面试中的手撕代码(一)
总结了一些面面试中常见的手写代码题,如有更好见解欢迎评论指正~原创 2023-12-19 11:34:24 · 350 阅读 · 0 评论 -
浏览器相关面试题(二)
其次,在每一个网页上应该加上面包屑导航,好处:从用户体验方面来说,可以让用户了解当前所处的位置以及当前页面在整个网站中的位置,帮助用户很快了解网站组织形式,从而形成更好的位置感,同时提供了返回各个页面的接口,方便用户操作;相反,把事件监听器添加到它们的父元素上。比如100个li,就要占用100个内存空间,如果是1000个,10000个呢,那只能说呵呵了,如果用事件委托,那么我们就可以只对它的父级(如果只有一个父级)这一个对象进行操作,这样我们就需要一个内存空间就够了,是不是省了很多,自然性能就会更好。原创 2023-12-19 10:43:25 · 798 阅读 · 0 评论 -
Vue面试题(二)
当我们的应用遇到多个组件共享状态时,会需要多个组件依赖于同一状态亦或是来自不同视图的行为需要变更同一状态。以前的解决办法:将数据以及操作数据的行为都定义在父组件将数据以及操作数据的行为传递给需要的各个子组件(有可能需要多级传递)传参的方法对于多层嵌套的组件将会非常繁琐,并且对于兄弟组件间的状态传递无能为力。在搭建下面页面时,你可能会对 vue 组件之间的通信感到崩溃 ,特别是非父子组件之间通信。此时就应该使用vuex,轻松可以搞定组件间通信问题。原创 2023-12-19 10:42:30 · 773 阅读 · 0 评论 -
浏览器相关面试题(一)
简单总结一下上文的防护策略:CSRF自动防御策略:同源检测(Origin 和 Referer 验证)。CSRF主动防御措施:Token验证 或者 双重Cookie验证 以及配合Samesite Cookie。保证页面的幂等性,后端接口不要在GET页面中做用户操作。安全问题主要参考这两篇文章[8]原创 2023-12-18 12:01:22 · 834 阅读 · 0 评论 -
vue面试题(一)
vue.js:vue-cli工程的核心,主要特点是数据双向绑定和组件系统vue-router:vue官方推荐使用的路由框架vuex:专为Vue.js应用项目开发的状态管理器,主要用于维护vue组件间共用的一些变量和方法。asios:用于发起GET或POST等的http请求,基于Promise 设计创建一个eenit.js文件,用于vue事件机制的管理webpack:模块加载和vue-cli工程打包器vue-cli目录解析:build 文件夹:用于存放 webpack 相关配置和脚本。原创 2023-12-18 11:55:30 · 866 阅读 · 0 评论 -
JS面试题(二)
Proxy 也就是代理,可以帮助我们完成很多事情,例如对数据的处理,对构造函数的处理,对数据的验证,说白了,就是在我们访问对象前添加了一层拦截,可以过滤很多操作,而这些过滤,由你来定义。val:string在.d.ts文件中声明的变量或者模块,在其他文件中不需要使用import导入,可以直接使用。.d.ts文件中我们常常可以看到declaredeclare左右就是告诉TS编译器你担保这些变量和模块存在,并声明了相应类型,编译的时候不需要提示错误!原创 2023-12-18 11:46:43 · 803 阅读 · 0 评论 -
HTML面试题
静态网页:指没有数据交互的网页,即没有数据库参与,没有服务器端数据的加载。比如静态网页就是只有做成的网站动态网页:指有后台数据参与的网页,网页中的数据是从数据库中提取的,需要由后台逻辑的支持。比如动态网页就是JSP页面等。HTML5 是目前最新的HTML标准,它的主要目的是提供所有内容,而不需要任何如Flash等的额外插件,这些内容来自动画、视频、富GUI等。HTML5 是万维网联盟(W3C)和网络超文本应用技术组(WHATWG)合作输出的。SVG即可缩放适量图像。原创 2023-12-16 14:21:13 · 984 阅读 · 0 评论 -
React面试题
js高阶函数(Higher-order function),至少满足下列一个条件的函数接受一个或多个函数作为输入输出一个函数在React中,高阶组件是参数为组件,返回值为新组件的函数。本质也就是一个函数,并不是一个组件。高阶组件的这种实现方式,本质上是一个装饰者设计模式。原创 2023-12-16 14:19:16 · 883 阅读 · 0 评论 -
JS面试题(一)
要求: 每个数字之间, 间隔时间为 1秒(提示, 好好审题哟)i < 5;i < 5;这次打印的结果不是五个5 是1秒之后一次性打印0,1,2,3,4,不满足题意。以下方法都可以实现i<5;) {i++;) {i++test()V8采用了一种分代回收的策略,将内存分为两个生代:新生代和老生代。新生代使用Scavenge算法进行回收。在Scavenge算法的实现中,主要采用了Cheney算法。原创 2023-12-16 14:23:24 · 766 阅读 · 0 评论 -
前端面试系列之性能优化和服务端篇
如果你现在正在找工作,可以私信“web”进群领取前端面试小册、简历优化修改、大厂内推以及更多阿里、字节大厂面试真题合集,和p8大佬一起交流。原创 2023-12-07 10:48:33 · 1019 阅读 · 0 评论 -
前端面试系列之工程化篇
如果你现在正在找工作,可以私信“web”进群领取前端面试小册、简历优化修改、大厂内推以及更多阿里、字节大厂面试真题合集,和p8大佬一起交流。原创 2023-12-07 10:37:30 · 859 阅读 · 0 评论 -
前端面试系列之浏览器篇
(1)概念CSRF 攻击指的是跨站请求伪造攻击,攻击者诱导用户进入一个第三方网站,然后该网站向被攻击网站发送跨站请求。如果用户在被攻击网站中保存了登录状态,那么攻击者就可以利用这个登录状态,绕过后台的用户验证,冒充用户向服务器执行一些操作。CSRF 攻击的本质是利用 cookie 会在同源请求中携带发送给服务器的特点,以此来实现用户的冒充。(2)攻击类型GET 类型的 CSRF 攻击,比如在网站中的一个 img 标签里构建一个请求,当用户打开这个网站的时候就会自动发起提交。原创 2023-12-06 10:45:51 · 883 阅读 · 0 评论 -
前端面试系列之计算机网络篇
如果你现在正在找工作,可以私信“web”进群领取前端面试小册、简历优化修改、大厂内推以及更多阿里、字节大厂面试真题合集,和p8大佬一起交流。原创 2023-12-06 10:43:06 · 747 阅读 · 0 评论 -
前端面试系列之 Vue 必备知识点
JavaScript中的对象是引用类型的数据,当多个实例引用同一个对象时,只要一个实例对这个对象进行操作,其他实例中的数据也会发生变化。而在 Vue 中,更多的是想要复用组件,那就需要每个组件都有自己的数据,这样组件之间才不会相互干扰。所以组件的数据不能写成对象的形式,而是要写成函数的形式。数据以函数返回值的形式定义,这样当每次复用组件的时候,就会返回一个新的data,也就是说每个组件都有自己的私有数据空间,它们各自维护自己的数据,不会干扰其他组件的正常运行。如果你现在正在找工作,可以私信“web”原创 2023-12-05 10:55:59 · 916 阅读 · 0 评论 -
前端面试系列之最重要的基础知识——JavaScript篇
事件委托本质上是利用了浏览器事件冒泡的机制。因为事件在冒泡过程中会上传到父节点,并且父节点可以通过事件对象获取到目标节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件,这种方式称为事件代理。使用事件代理我们可以不必要为每一个子元素都绑定一个监听事件,这样减少了内存上的消耗。并且使用事件代理我们还可以实现事件的动态绑定,比如说新增了一个子节点,我们并不需要单独地为它添加一个监听事件,它所发生的事件会交给父元素中的监听函数来处理。原创 2023-12-05 10:52:25 · 815 阅读 · 0 评论 -
前端面试系列初章——HTML & CSS 篇
如果你现在正在找工作,可以私信“web”进群领取前端面试小册、简历优化修改、大厂内推以及更多阿里、字节大厂面试真题合集,和p8大佬一起交流。原创 2023-12-04 14:21:11 · 902 阅读 · 0 评论