大厂前端面试题
小张很嚣张~
Web前端开发交流,各位大神多多指教~
展开
-
前端异常数据抓取和数据上报及用户行为信息分析
接口错误异常 统一在 axios封装中 拦截器中使用 .catch 中捕获js异常使用window.addEventListene(‘error’,(error) => {},true);第三个参数表示是否捕获阶段执行,开启捕获不仅可以获取到js的异常,还可以获取到资源加载的异常(如图片加载失败)未处理的 Promise 异常// 打印异常原因// 阻止控制台打印});原创 2022-10-26 11:44:53 · 802 阅读 · 0 评论 -
移动端瀑布流图文展示React
瀑布流移动端丝滑体验React。原创 2022-09-13 14:10:15 · 890 阅读 · 0 评论 -
前端面试题高频
1. vue2.x的响应式实现和vue3.x的响应式实现2.diff算法实现原理3.AST抽象语法树实现原理4.webpack实现原理5.常见的loader和plugin以及loader和plugin的区别6.前端性能优化7.前端安全问题8.前端长列表优化9.浏览器缓存10.浏览器从输入url按下回车都经历了什么11.css样式垂直居中12.TCP三握四挥13.new关键字都做了什么14.两个异步任务如何比较快慢15.Promise16.vue3新原创 2022-02-17 10:20:14 · 439 阅读 · 0 评论 -
前端性能优化方案
前端性能优化方案优化工具:lighthousewebpagetestchrome devtools**FCP 首次内容绘制 1s以内LCP 最大内容绘制 2.5s以内FID 首次输入延迟TTI 完全可交互TBT 总阻塞时间 所有长任务(多于50ms的任务)时间 - 50msCLS 布局抖动**html解析知识点解析html过程中 如果遇到js脚本不管是内联还是外联都会阻塞DOM的渲染 而是下载脚本并且解析脚本处理完后 继续解析Htmldefer 与 DOMContentLoa原创 2022-02-10 17:24:19 · 1486 阅读 · 0 评论 -
Koa2如何区分线上环境和本地开发环境
首先第一步 配置package.json"dev": "nodemon ./src/main.js","prod":"nodemon ./src/main.js"然后根据 process.env.npm_lifecycle_event去区分就好了, 运行npm run dev那么process.env.npm_lifecycle_event的值是dev 运行npm run prod那么process.env.npm_lifecycle_event的值是prod无需下载任何第三方插件!!!原创 2021-11-04 19:18:31 · 533 阅读 · 0 评论 -
前端面试必问知识点
HTTP header 有哪些字段&HTTP 的方法有哪些方法Http中存在多个字段可实现Http功能的扩展,也就是之前所提到的易于扩展特性。数据类型与编码类型字段客户端和服务器常常需要协商返回的数据。客户端发送请求时需告知服务器所需返回的文件类型,服务端需告知浏览器实际返回的数据是什么类型。同样,他们之间也需协商数据的编码类型。常见数据类型(MIME type)text文本类型数据,具体包括纯文本文档(text/plain)、超文本文档(text/html)和样式文档(text/cs原创 2021-09-27 16:05:26 · 147 阅读 · 0 评论 -
数据结构复习
结点的度:当前节点的子结点的个数树的度:该树最大结点数叶子结点:没有后代的结点分支结点:有后代的结点(跟结点又叫做开始结点,其他结点叫做内部结点)双亲表示法 : 数组孩子表示法 : 数组+链表孩子兄弟表示法二叉树:每个结点至多有两个子结点,这样的树叫做二叉树二叉树中不存在度大于二的结点左子树和右子树顺序不能颠倒即使某个结点存在一个子结点也要区分是左子树还是右子树第n层最多有 2^(n-1)个结点深度为n最多 2^n - 1 个结点...原创 2021-08-06 18:16:53 · 45 阅读 · 0 评论 -
前端自动化工具CI/CD
使用自动化工具持续集成:持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。交付:持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。部署:持续部署则是在持续交付的基础上,把部署到生产环境的过程自原创 2021-05-31 18:12:33 · 332 阅读 · 0 评论 -
前端大厂面试题1
选择题display 属性的常用值不包括?Answer©A. inlineB. blockC. hiddenD. none以下代码运行的结果是?Answer(B)function changeObjProperty(o) {o.siteUrl = “http://www.baidu.com”o = new Object()o.siteUrl = “http://www.google.com”}let webSite = new Object();changeObjPropert原创 2021-05-21 14:50:31 · 525 阅读 · 0 评论 -
前端大厂面试题2
选择题下面哪项的样式优先级最高Answer (B)A. div #spanB. #div .spanC. .div spanD. .div #span下列说法正确的是Answer (BC)A. setTimeout(foo, 0) 这行代码可以等价替换为 foo()B.使用 Object.assign() 可以实现对象的浅拷贝C. for…in 循环只能遍历对象上的可枚举属性D. Object.keys() 可以遍历出对象原型链上的属性[‘1’, ‘2’, ‘3’].map(par原创 2021-05-21 14:50:01 · 386 阅读 · 0 评论 -
前端大厂面试题3
选择题下面哪个不是css中的长度单位?Answer©A. pxB. remC. thD. vw以下代码运行的结果是?Answer(C)var x = 21var girl = function () {console.log(x)var x = 20}girl()A. 21B. 20C. undefinedD. null关于箭头函数,下面正确的是哪个?Answer (D)A. 箭头函数可以通过 .call()、.apply()、.bind() 方法来重新绑定它的 t原创 2021-05-21 14:49:33 · 131 阅读 · 0 评论 -
前端离线缓存原理
https://blog.csdn.net/ican87/article/details/81147840传送门原创 2021-05-18 11:19:05 · 561 阅读 · 0 评论 -
OSI七层网络模型前端面试题
OSI七层网络模型包括:物理层、数据链路层、网络层、 传输层、会话层、表示层、应用层。如何理解?物理层对应的物理实体就是网线,水晶头. 数据链路层对应的物理实体就是交换机, 网络层对应的是路由器.想象一个数据包从一个主机发送出来, 经过网线水晶头(物理层), 再经过交换机(数据链路层), 然后通过路由器(网络层), 到达另一个主机. 之后,这个数据包将离开物理硬件, 完全进入到软件的范畴了. 这个包是是用tcp或者udp来进行传输(传输层), 然后两个主机开始建立会话并管理会话(会话层), 然后解原创 2021-05-18 11:00:06 · 503 阅读 · 0 评论 -
前端面试题大全
点我传送TP点我去看 ----> HTML篇点我去看 ----> CSS篇点我去看 ----> JS、ES6篇点我去看 ----> 浏览器及http篇点我去看 ----> VUE篇点我去看 ----> Webpack篇点我去看 ----> (项目/功能/原理/测试等)篇...原创 2021-05-17 17:21:28 · 136 阅读 · 0 评论 -
常见模块开发规范CommonJS、AMD、CMD、ES6 模块加载详解
传送门原创 2021-05-06 15:17:13 · 58 阅读 · 0 评论 -
浏览器缓存机制详解、CDN介绍、什么是回源
CDN的优势:(1)CDN节点解决了跨运营商和跨地域访问的问题,访问延时大大降低;(2)大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源站的负载。各缓存介绍CDN缓存的缺点:当网站更新时,如果CDN节点上数据没有及时更新,即便用户再浏览器使用Ctrl +F5的方式使浏览器端的缓存失效,也会因为CDN边缘节点没有同步最新数据而导致用户访问异常。彻底理解浏览器的缓存机制(http缓存机制)彻底理解浏览器的缓存机制(http缓存机制)...原创 2021-05-06 14:26:01 · 282 阅读 · 0 评论 -
爆肝前端大厂面试题,看完去面试过不了K我(值得收藏)
怎么去设计一个组件封装组件封装的目的是为了重用,提高开发效率和代码质量低耦合,单一职责,可复用性,可维护性前端组件化设计思路js 异步加载的方式渲染引擎遇到 script 标签会停下来,等到执行完脚本,继续向下渲染defer 是“渲染完再执行”,async 是“下载完就执行”,defer 如果有多个脚本,会按照在页面中出现的顺序加载,多个async 脚本不能保证加载顺序加载 es6模块的时候设置 type=module,异步加载不会造成阻塞浏览器,页面渲染完再执行,可以同时加上async属性,原创 2021-05-06 11:35:11 · 161 阅读 · 1 评论