【前端八股面试】干货!!!

slice与splice

  1. slice(开始索引(包含),结束索引(不包含)),返回slice中的新数组。不修改原数组。

例如:const arr = [1, 2, 3, 4, 5]; const newArr = arr.slice(1, 4);,将返回新的数组 [2, 3, 4]。

  1. splice(起始索引值(包含),结束索引值(包含),增加的元素),可删可添加可替换数组中元素。splice 改变原数组  splice是返回更新后的数组长度

例如:const arr = [1, 2, 3, 4, 5]; arr.splice(1, 2, 'a', 'b', 'c');,将返回被删除的元素组成的新数组 [2, 3],并修改原始数组为 [1, 'a', 'b', 'c', 4, 5]。

CSS有哪些方式可以隐藏页面元素

  1. opacity:0 占据空间可交互
  2. display:none 彻底隐藏元素,元素从文档流中消失,不占据空间不交互,不影响布局
  3. visibility:hidden 占据空间不交互
  4. overflow:hidden 隐藏元素溢出部分,占据空间不交互
  5. z-index:-999 层级为最底层,被覆盖
  6. transform:scale(0,0) 平面变换,元素缩为0,占据空间不交互

diaplay:none与visibility:hidden的区别:

  1. 修改display造成文档重排,修改visibility造成本元素重绘
  2. 读屏器不读取display:none的内容,读取visibility:hidden的内容
  3. display:none让元素从渲染树上消失渲染不占空间,visibility:hidden相反,只是内容不可见
  4. display:none非继承属性,子孙节点消失,修改子孙节点属性也无法显示;visibility:hidden继承属性,子孙节点设置visibility:visible可让子孙节点显示

em/px/rem/vh/vw的区别,pt/px

  1. px: 绝对单位,页面按精确像素展示
  2. %:相对于父元素的宽度比例
  3. em: 相对单位,基准点为父节点字条大小,若定义了font-size按自身计算(浏览器默认16px),整个页面1em不是一个固定值
  4. rem: 相对单位,相对于根节点html字体大小计算(html的font-size:20px的时候,那么此时的1rem=20px)
  5. vh、vw:页面视口大小布局

vw: 屏幕宽度x%

vh: 屏幕高度x%

vmin: vw、vh中较小的

vmax: vw、vh中较大的

  1. pt:pt是印刷单位,等于1/72英寸,通常用于打印样式。屏幕分辨率不固定,打印分辨率是固定的
  2. px:px是相对于屏幕分辨率的单位,通常用于打印样式。

flex布局

flex布局是一种响应式盒子模型的布局方式,可以用来实现各种复杂的页面布局和响应式设计。

flex是一个缩写属性,包含:

  1. flex-grow:1,默认0,有剩余空间也不放大;1表示会放大
  2. flex-shrink:0默认1,空间不足元素缩小
  3. flex-basis:默认auto,项目占据主轴空间的大小,定义在分配多余空间之前,用来设置元素宽,优先级高于width

flex-direction:指定子元素的排列方向,可以是 row(水平方向,默认值)、column(垂直方向)、row-reverse(水平方向,反向排列)或 column-reverse(垂直方向,反向排列)。

justify-content flex-start(起点对齐)、flex-end(终点对齐)、center(居中对齐)、space-between(两端对齐,项目之间间隔相等)、space-around(每个项目两侧的间隔相等)。

align-items flex-start(起点对齐)、flex-end(终点对齐)、center(居中对齐)、baseline(基线对齐)、stretch(拉伸对齐,占满整个交叉轴)。

flex-wrap:定义子元素是否换行,可以是 nowrap(不换行,默认值)、wrap(换行)、wrap-reverse(反向换行)。

CSS提高性能的方法有哪些?

  1. 内联首屏关键CSS:
  1. 内联CSS关键代码使浏览器下载完html后立即渲染(渲染时间提前)
  1. 异步加载CSS:(CSS会阻塞渲染)
  • 使用JS将link标签插入head标签最后

设置 link标签media属性为noexis t(不阻塞页面下进行下载), 加载完后media值设为screen或 all后浏览器解析CSS;

rel属性将link元素 标记为alternate可选样式表,实现浏览器异步加载, 加载完后rel设回stylesheet;

  1. 资源压缩

利用webpack、gulp/grunt、rollup等模块化工具,压缩CSS代码,文件变小,降低浏览器加载时间

  1. 合理使用选择器

不要嵌套过多复杂选择器、id选择器不用再嵌套、通配符和属性选择器效率最低(勿用)

  1. 减少使用昂贵的属性

页面重绘时,box-shadow、border-radius、filter、透明度、:nth-child等会降低浏览器渲染性能

  1. 不使用@import

(CSS样式文件引入方式:link、@import)

  • 影响浏览器并行下载,页面加载时增加额外延迟
  • 多个@import导致下载顺序紊乱
  1. 其他

减少重排重绘、避免对可继承属性重复编写、精灵图合成所有icon图片减少http请求、小的icon转为base64编码、CSS3动画或过渡尽量使用transform和opacity实现,不要使用left top

  • 20
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web前端八股面试是指在面试中经常会被问到的一些常见问题和知识点。以下是对此话题的300字回答: Web前端八股面试通常包含各种常见的问题和知识点,主要用于考察面试者对Web前端开发方面的基本理解和掌握程度。下面我将以简要方式介绍几个典型问题和相关知识点。 首先,HTML和CSS是Web前端开发的基础。HTML负责页面结构的搭建,CSS则负责页面样式的设计和呈现。在面试中,可以问到关于HTML标签和CSS属性的使用场景以及常用的布局方式等问题。 其次,JavaScript是Web前端开发中的重要一环。面试中可能涉及到JavaScript的基本语法、DOM操作、事件处理、异步编程以及相关的框架和库等知识点。例如,常见的问题是如何实现一个简单的图片轮播效果,可以通过JavaScript来改变图片的显示和隐藏实现。 此外,面试中还可能会涉及到网络相关的知识,比如HTTP协议、缓存机制和前后端交互等。了解这些知识可以帮助面试者更好地理解Web页面的加载和渲染过程,以及进行性能优化。 最后,有些面试可能会针对性地问一些框架和库相关的问题,比如React、Vue和Angular等。这些框架和库在Web前端开发中得到了广泛应用,了解它们的基本原理和使用方式可以提升面试者的竞争力。 综上所述,Web前端八股面试是一种常见的面试形式,主要考查面试者对Web前端开发的基础知识和常见问题的掌握程度。通过准备和学习相关的知识点,面试者可以提高自己的面试表现,并增加获得工作机会的可能性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值