当前位置: 首页> 科技> 互联网 > 前端面试题(基础篇五)

前端面试题(基础篇五)

时间:2025/8/1 18:09:07来源:https://blog.csdn.net/weixin_74068942/article/details/139813776 浏览次数:0次

一、⽔平居中的⽅法、垂直居中的⽅法

1.水平居中的方法

元素为⾏内元素,设置⽗元素 text-align:center

如果元素宽度固定,可以设置左右 margin auto ;

如果元素为绝对定位,设置⽗元素 position relative ,元素设 left:0;right:0;margin:auto;

使⽤ flex-box 布局,指定 justify-content 属性为center

display 设置为 tabel-ceil

2.垂直居中的方法

将显示⽅式设置为表格, display:table-cell ,同时设置 vertial-alignmiddle

使⽤ flex 布局,设置为 align-itemcenter

绝对定位中设置 bottom:0,top:0 ,并设置 margin:auto

绝对定位中固定⾼度时设置 top:50%margin-top 值为⾼度⼀半的负值

⽂本垂直居中设置 line-height height

二、重绘和回流(重排)是什么,如何避免?

DOM的变化影响到了元素的⼏何属性(宽⾼),浏览器重新计算元素的⼏何属性,其他元素 的⼏何属性和位置也会受到影响,浏览器需要重新构造渲染树,这个过程称为重排;浏览器将受 到影响的部分重新绘制到屏幕上的过程称为重绘。

引起重排的原因有:

添加或者删除可⻅的DOM元素,

元素位置、尺⼨、内容改变,

浏览器⻚⾯初始化,

浏览器窗⼝尺⼨改变,重排⼀定重绘,重绘不⼀定重排,

减少重绘和重排的⽅法:

不在布局信息改变时做 DOM 查询

使⽤ cssText 或者 className ⼀次性改变属性

使⽤ fragment

对于多次重排的元素,如动画,使⽤绝对定位脱离⽂档流,让他的改变不影响到其他元素

三、闭包

闭包就是能够读取其他函数内部变量的函数

闭包是指有权访问另⼀个函数作⽤域中变量的函数,创建闭包的最常⻅的⽅式就是在⼀个

函数内创建另⼀个函数,通过另⼀个函数访问这个函数的局部变量,利⽤闭包可以突破作⽤ 链域

闭包的特性:

函数内再嵌套函数

内部函数可以引⽤外层的参数和变量

参数和变量不会被垃圾回收机制回收

对闭包的理解:

使⽤闭包主要是为了设计私有的⽅法和变量。闭包的优点是可以避免全局变量的污染,缺 点是闭包会常驻内存,会增⼤内存使⽤量,使⽤不当很容易造成内存泄露。在js中,函数即 闭包,只有函数才会产⽣作⽤域的概念

闭包 的最⼤⽤处有两个,⼀个是可以读取函数内部的变量,另⼀个就是让这些变量始终保 持在内存中

闭包的另⼀个⽤处,是封装对象的私有属性和私有⽅法

好处:能够实现封装和缓存等;

坏处:就是消耗内存、不正当使⽤会造成内存溢出的问题

使⽤闭包的注意点

由于闭包会使得函数中的变量都被保存在内存中,内存消耗很⼤,所以不能滥⽤闭包,否 则会造成⽹⻚的性能问题,在IE中可能导致内存泄露

解决⽅法是,在退出函数之前,将不使⽤的局部变量全部删除

四、说说你对作⽤域链的理解

作⽤域链的作⽤是保证执⾏环境⾥有权访问的变量和函数是有序的,作⽤域链的变量只能 向上访问,变量访问到 window 对象即被终⽌,作⽤域链向下访问变量是不被允许的

简单的说,作⽤域就是变量与函数的可访问范围,即作⽤域控制着变量与函数的可⻅性和 ⽣命周期

五、JavaScript原型,原型链 ? 有什么特点?

每个对象都会在其内部初始化⼀个属性,就是 prototype (原型),当我们访问⼀个对象的 属性时如果这个对象内部不存在这个属性,那么他就会去 prototype ⾥找这个属性,这个prototype ⼜会有⾃⼰prototype ,于是就这样⼀直找下去,也就是我们平时所说的 原型链的概念

关系: instance.constructor.prototype = instance.__proto__

特点:

JavaScript 对象是通过引⽤来传递的,我们创建的每个新对象实体中并没有⼀份属于

⾃⼰的原型副本。当我们修改原型时,与之相关的对象也会继承这⼀改变当我们需要⼀个属性时, Javascript 引擎会先看当前对象中是否有这个属性, 如果没 有就会查找他的 Prototype 对象是否有这个属性,如此递推下去,⼀直检索到 Object 内建对象

关键字:前端面试题(基础篇五)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: