前端面试题(基础篇五)

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

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 内建对象

  • 30
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端基础面试题2021 pdf》是一份前端开发面试题目集合的PDF文件。这份题目集合包含了2021年前端开发领域的基础知识和技能要求。 这份PDF文件主要包括了以下内容:HTML、CSS、JavaScript基础知识、网络与安全、框架与工具、性能优化与调试、前端工程化等方面的题目。 在HTML方面,题目涉及HTML标签、常见元素的使用、语义化等内容。在CSS方面,题目包括选择器、盒模型、浮动、定位、布局等知识。在JavaScript方面,题目涉及变量、数据类型、运算符、函数、作用域、闭包、面向对象等内容。 此外,网络与安全的题目涵盖了HTTP协议、HTTPS、跨域、攻击与防御等知识。框架与工具方面,题目包括对常见框架如React、Vue的理解、webpack等工具的使用。性能优化与调试的题目涉及浏览器渲染原理、代码优化、性能测试等。而前端工程化方面的题目则包括项目构建、版本控制、代码规范等方面。 通过研究这份面试题目集合,考生可以了解2021年前端开发领域的基本要求和技能点,提前进行准备和复习。同时,这份题目集合也可以帮助面试官评估候选人的技术水平和能力,从而做出合理的招聘决策。 总的来说,《前端基础面试题2021 pdf》是一份在前端开发领域进行面试准备和评估的有用资源。如果你是一位前端开发者,阅读并解答其中的题目,有助于加深对前端知识和技能的理解和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值