【每日前端面经】2023-02-29

题目来源: 牛客

如何理解前端这个岗位

简单地说就是设计师做好网页效果图,前端将效果图转化成页面,之后交给后端程序员,中间的这段工作就是前端

浏览器如何渲染HTML

  • 将载入的HTML文件解析成DOM树,并且将各个标记标识解析成DOM树的各个节点
  • 将解析成的DOM树和CSS规则树进行关联生成渲染树
  • 进入布局阶段,为DOM树的每个节点分配在屏幕上出现的确切坐标
  • 进入绘制阶段,在这里渲染引擎的工作就结束了,接下来就交给后端对渲染树的每个节点进行绘制,呈现出页面效果

重绘会引起重排么

重绘是指某些元素的外观被改变,重拍是指重新生成布局排列元素。单单改变元素的外观,肯定不会引起网页重新生成布局,但当浏览器完成重拍之后,将会重新绘制受到此次重排影响的部分。也就是说:重绘不一定导致重排,但重排一定会导致重绘

使用scale属性会引起重绘还是重排

scale只能引起重绘而不是重排,transform的所有属性都不会引起重排

浏览器事件循环

  • 执行同步代码
  • 执行宏任务
  • 将微任务添加到任务队列
  • 宏任务执行完毕后,执行任务队列

图片懒加载

简单来说,就是如果可视区域里面看不到图片,就先不加载图片

addEventListener("scroll", () => {const images = document.querySelectorAll('img');images.forEach(image => {const clientHeight = document.documentElement.clientHeight;const scrollTop = document.documentElement.scrollTop;if (image.offsetTop < clientHeight + scrollTop) {image.setAttribute('src', image.getAttribute('data-src'));}});
});

路由懒加载

当打包构建应用时,JS包会变得非常大,影响页面加载。如果把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了

  • Vue异步组件
  • ES6标准import()
  • webpack的require/ensure

路由鉴权

  • 路由拦截
  • 动态路由

请求拦截器

  • HandlerInterceptor: 拦截的目标为请求的地址
  • ClientHttpRequestInterceptor: 拦截的目标为请求的方法
  • RequestInterceptor: 对RestTemplate的请求进行拦截
  • AsyncClientHttpRequestInterceptor: Feign拦截器,也就是一个HTTP拦截器

堆栈和队列

  • 堆栈:最后一个放入堆栈中的物体总是最先被拿出来,这个特性通常被称为后进先出
  • 队列:先进入队列中的元素总是最先被拿出来,被称为先进先出

对链表的理解

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链次序连接的,由一系列结点组成。分为单链表、循环链表、双向链表、双向循环链表等

数组和链表的存储结构

  • 数组的内存空间是连续的,可以通过索引快速访问任意位置的元素,适合于按照顺序存储和快速访问数据的场景
  • 链表的空间可以是不连续的,适合在中间位置插入或删除元素,适合与频繁变动数据集合的场景

数组的长度限制

根据ES5的规范,数组的最大长度由一个无符号32位整数绑定,因此最长的数组由 2 32 − 1 个 2^{32}-1个 2321元素

附件的上传和下载怎么实现

  • 上传: 先获取到文件对象然后利用表单FormData对象进行传输
  • 下载: 手动新建一个a标签然后自动触发下载

获得树中某个节点的层级

class Node {value: string;lchild: Node;rchild: Node;
}function getLevel(head, target, level=1) {if (head === null) return 0;if (head.value === target.value) {return level;} else {l = getLevel(head.lchild, target, level + 1);if (l !== 0) return l;return getLevel(head.rchild, target, level + 1);}
}

前端开发是做什么的?工作职责有哪些?
浏览器是如何解析和渲染HTML的🔥🔥🔥
重排(reflow)和重绘(repaint)
css zoom和scale的使用
浏览器事件循环看这一篇就够了
浅析图片懒加载(三种实现方法与两种优化方式)
vue-router路由懒加载以及三种实现方式
vue-鉴权的两种方法之路由拦截
几种常见的拦截器使用
数组与链表:数据存储结构的比较
面试官:说说你对链表的理解?常见的操作有哪些?
GuoXY
7-5 求二叉树中指定节点的层次
js数组有最大长度吗?

新人发文,礼貌球馆❤️

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

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

相关文章

SQL的窗口函数

SQL的窗口函数 文章目录 SQL的窗口函数1. 介绍2. 聚合函数0.数据准备1. AVG2. COUNT3. MAX4. MIN5. 标准差6. SUM 3. 排序函数1. CUME_DIST2. RANK, DENSE_RANK, ROW_NUMBER3. PERCENT_RANK4. NTILE 4. 值函数(偏移函数)1. FIRST_VALUE2. LAST_VALUE3. LAG4. LEAD5. NTH_VALUE …

ChatGPT4.0 的优势、升级 4.0 为什么这么难以及如何进行升级?

前言 “ChatGPT4.0一个月多少人民币&#xff1f;” ”chatgpt4账号“ ”chatgpt4 价格“ “chatgpt4多少钱” 最近发现很多小伙伴很想知道关于ChatGPT4.0的事情&#xff0c;于是写了这篇帖子&#xff0c;帮大家分析一下。 一、ChatGPT4.0 的优势 &#xff08;PS&#xff1a;…

LINUX基础培训二十七之shell标准输入、输出、错误

一、Shell 输入/输出重定向 大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入&#xff0c;默认情况下&#xff0c;这恰好是你的终端。同样&#xff0c;一个命令通常将其输出写入到标准输出&#xff…

【树莓派系统配置+python3.8+环境配置踩坑点汇总】raspberrypi

最近又开始搞树莓派的深度学习模型。很多windows端的环境需要在树莓派上重新部署&#xff0c;中间出现了非常多的问题。主要以各种库的下载安装为主要。 首先&#xff0c;第一个问题&#xff1a; 树莓派系统烧录之后&#xff0c;默认apt一般需要升级看&#xff0c;而默认下载…

无穷级数法求Π

任务描述 本关任务&#xff1a;编写一个无穷级数法计算圆周率的小程序。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 无穷级数法 无穷级数法 π 是个超越数&#xff0c;圆周率的超越性否定了化圆为方这种尺规作图精确求解问题的可能性。有趣的是&…

【Spring】18 Bean 定义继承

文章目录 介绍声明式配置抽象Bean定义继承的配置项注意&#xff1a;抽象Bean预实例化结论 Spring 框架提供了一个强大的功能&#xff0c;称为 Bean 定义继承&#xff0c; 允许开发人员高效地在 bean 之间重用和自定义配置。在本篇文章中我们将介绍 Bean 定义继承的概念&#x…

JVM性能优化

运行时优化 方法内联 方法内联&#xff0c;是指 JVM在运行时将调用次数达到一定阈值的方法调用替换为方法体本身 &#xff0c;从而消除调用成本&#xff0c;并为接下来进一步的代码性能优化提供基础&#xff0c;是JVM的一个重要优化手段之一。 注&#xff1a; C的inline属于编…

babylonsjs入门-基础模版

基于babylonjs封装的一些功能和插件 &#xff0c;希望有更多的小伙伴一起玩babylonjs&#xff1b; 欢迎加群&#xff08;点击群号传送&#xff09;&#xff1a;464146715 官方文档 中文文档 案例传送门 ​ 懒得打字&#xff0c;你们直接去copy组件吧&#xff0c;主要看这2…

旧版android模拟器,37岁程序员被裁

前言 从18年毕业至今&#xff0c;就职过两家公司&#xff0c;大大小小项目做了几个&#xff0c;非常感谢我的两位老大&#xff0c;在我的android成长路上给予我很多指导&#xff0c;亦师亦友的关系。 从年前至今参加面试了很多公司&#xff0c;也收到了几家巨头的offer&#…

transformer--编码器2(前馈全连接层、规范化层、子层链接结构、编码器层、编码器)

前馈全连接层 什么是前馈全连接层: 在Transformer中前馈全连接层就是具有两层线性层的全连接网络 前馈全连接层的作用: 考虑注意力机制可能对复杂过程的拟合程度不够,通过增加两层网络来增强模型的能力 code # 前馈全连接层 class PositionwiseFeedForward(nn.Module):de…

绝地求生:发现吃鸡号被盗,怎么操作才是最正确的

首先闲游盒先了解一下盗号者的盗号流程 一般盗号的流程是先把你steam上的皮肤饰品出售&#xff0c;然后把余额转走&#xff0c;再把steam账号作为黑号进行出售。 所以当闲游盒发现号被盗的时候也分为两种情况&#xff1a;一种是他正在出售商品的时候&#xff0c;你收到邮箱提示…

Linux命令行与shell脚本编程大全-3-4

第三部分高级shell脚本编程 第17章创建函数 17.1 脚本函数基础 17.1.1 创建函数 在bash shell 脚本中创建函数的语法有两种。第一种语法是使用关键字function&#xff0c;随后跟 上分配给该代码块的函数名&#xff1a; function name { commands } 17.1.2 使用函数 要在脚…

代码随想录算法训练营Day46 | 139.单词拆分、多重背包(卡码网56.携带矿石资源)

139.单词拆分 可以理解为一道 完全背包 排列 的题&#xff0c;dp数组定义和递推公式部分脑子需要转个弯 1、DP数组定义&#xff1a;一维滚动数组vector<bool>。dp[j]表示字符串s的[0, j]子串是否能够匹配。 2、DP数组初始化&#xff1a;dp[0]初始化为true&#xff0c;其…

Multi-Head Attention详解

文中大部分内容以及图片来自&#xff1a;https://medium.com/hunter-j-phillips/multi-head-attention-7924371d477a 当使用 multi-head attention 时&#xff0c;通常d_key d_value &#xff08;d_model / n_heads&#xff09;&#xff0c;其中n_heads是头的数量。研究人员称…

01-Vue2 介绍与指令的使用

1. Vue核心 1.1. Vue简介 1.1.1. 官网 中文官网Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org)https://cn.vuejs.org/ 英文官网Vue.js - The Progressive JavaScript Framework | Vue.js (vuejs.org)https://vuejs.org/ 1.1.2. 介绍与描述 VUE是构建于用户界面的渐进…

靶机渗透之sar

Name: Sar: 1Date release: 15 Feb 2020Author: LoveSeries: Sar Download: https://drive.google.com/open?id1AFAmM21AwiAEiVFUA0cSr_GeAYaxd3lQ 对于vulnhub中的靶机&#xff0c;我们都需先下载镜像&#xff0c;然后导入VM&#xff0c;并将网络连接改为NAT模式。首先我们…

UDP数据报套接字编程入门

目录 1.TCP和UDP的特点及区别 1.1TCP的特点 1.2UDP的特点 1.3区别 2.UDP Socket的api的介绍 2.1DatagramSocket API 2.2DatagramPacket API 3.回显客户端与服务器 3.1回显服务器 3.1.1UdpEchoServer类的创建 3.1.2服务器的运行方法start() 3.1.3main部分 3.1.4.完整…

C# CAD PaletteSet.Style各种外观和行为样式

ps.Style 是 Autodesk.AutoCAD.Windows.PaletteSet 类的一个属性&#xff0c;用于定义调色板集&#xff08;PaletteSet&#xff09;的各种外观和行为样式。它可以是 PaletteSetStyles 枚举类型的组合值 PaletteSetStyles 枚举中包含以下一些选项&#xff1a; NameEditable&am…

统计子矩阵

一、题目描述 P8783 [蓝桥杯 2022 省 B] 统计子矩阵 二、算法简析 2.1 二维前缀和 我们知道&#xff0c;只要确定了矩阵的左上顶点和右下顶点&#xff0c;一个矩阵就被固定了。因此&#xff0c;我们可以遍历这两个顶点&#xff0c;达到遍历所有子矩阵的目的&#xff0c;复杂…

AutoSAR(基础入门篇)12.5-Dem

目录 一、Dem简介 二、Dem消抖 1、计数模式 1. 普通增减计数 2. 反向归零增减模式