240 Star 2.1K Fork 87

鹏磊 / DevBooks

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
前端面试题及答案整理汇总,2021年最新版.md 7.89 KB
一键复制 编辑 原始数据 按行查看 历史

前端面试题及答案整理汇总,2023年最新版

全部答案,更新日期:2023年6月11日,直接下载吧!

下载链接:高清172份,累计 7701 页大厂面试题 PDF

1、使用 CSS 预处理器吗?

Less sass

2、offsetWidth/offsetHeight,clientWidth/clientHeight与scrollWidth/scrollHeight的区别

1、 offsetWidth/offsetHeight返回值包含content + padding + border,效果与e.getBoundingClientRect()相同

2、 clientWidth/clientHeight返回值只包含content + padding,如果有滚动条,也不包含滚动条

3、 scrollWidth/scrollHeight返回值包含content + padding + 溢出内容的尺寸

3、原型和原型链

原型和原型链的概念

每个对象都会在其内部初始化一个属性,就是prototype(原型),当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的prototype,于是就这样一直找下去

原型和原型链的关系

instance.constructor.prototype = instance.__proto__

原型和原型链的特点

JavaScript对象是通过引用来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本。当我们修改原型时,与之相关的对象也会继承这一改变

当我们需要一个属性的时,Javascript引擎会先看当前对象中是否有这个属性, 如果没有的

就会查找他的Prototype对象是否有这个属性,如此递推下去,一直检索到 Object 内建对象

4、闭包

闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域

闭包的特性:

1、 函数内再嵌套函数

2、 内部函数可以引用外层的参数和变量

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

说说你对闭包的理解

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

5、C3新特性:

1、 复杂的选择器

2、 弹性布局

3、 动画

6、什么是高阶函数?

高阶函数只是将函数作为参数或返回值的函数。

function higherOrderFunction(param,callback){ return callback(param); }

7、上下margin重合的问题

在重合元素外包裹一层容器,并触发该容器生成一个BFC。

例子:

<div class="aside"></div>
<div class="text">
    <div class="main"></div>
</div>
<!--下面是css代码-->
 .aside {
            margin-bottom: 100px;
            width: 100px;
            height: 150px;
            background: #f66;
        }
        .main {
            margin-top: 100px;
            height: 200px;
            background: #fcc;
        }
         .text{
            /*盒子main的外面包一个div,通过改变此div的属性使两个盒子分属于两个不同的BFC,以此来阻止margin重叠*/
            overflow: hidden;  //此时已经触发了BFC属性。
        }

8、实现不使用 border 画出 1 px 高的线,在不同浏览器的标准模式与怪异模式下都能保持一致的效果。

html
<div style="height:1px;overflow:hidden;background:red"></div>

9、如何创建块级格式化上下文(block formatting context),BFC有什么用

创建规则:

1、 根元素

2、 浮动元素(float不是none

3、 绝对定位元素(position取值为absolutefixed

4、 display取值为inline-block,table-cell, table-caption,flex, inline-flex之一的元素

5、 overflow不是visible的元素

作用:

1、 可以包含浮动元素

2、 不被浮动元素覆盖

3、 阻止父子元素的margin折叠

10、异步编程?

方法1:

1、 回调函数,优点是简单、容易理解和部署,缺点是不利于代码的阅读和维护,各个部分之间高度耦合(Coupling),流程会很混乱,而且每个任务只能指定一个回调函数。

方法2:

1、 时间监听,可以绑定多个事件,每个事件可以指定多个回调函数,而且可以“去耦合”(Decoupling),有利于实现模块化。缺点是整个程序都要变成事件驱动型,运行流程会变得很不清晰。

方法3:

发布/订阅,性质与“事件监听”类似,但是明显优于后者。

方法4:

1、 Promises对象,是CommonJS工作组提出的一种规范,目的是为异步编程提供统一接口。

2、 简单说,它的思想是,每一个异步任务返回一个Promise对象,该对象有一个then方法,允许指定回调函数。

11、作用域和执行上下文的区别是什么?

12、ajax 是什么?

13、在jq中 mouseover mouseenter mouseout mouseleave 和 hover有什么关联?

14、Set、Map的区别

15、get和post的区别

16、组件之间的传值通信

17、一个页面上有大量的图片,加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。

18、in 运算符和 Object.hasOwnProperty 方法有什么区别?

19、ajax的优点和缺点

20、如何在页面上实现一个圆形的可点击区域?

21、什么是哈希表?

22、var、let、const之间的区别

23、var,letconst的区别是什么?

24、对This对象的理解

25、谈谈你对ES6的理解

26、什么是预编译语音|预编译处理器?

27、什么是Set对象,它是如何工作的?

28、WEB标准以及W3C标准是什么?

29、如何判断值是否为数组?

30、["1", "2", "3"].map(parseInt) 答案是多少?

全部答案,更新日期:2023年6月11日,直接下载吧!

下载链接:全部答案,整理好了

新增:高清PDF:172份,7701页,最新整理

Java
1
https://gitee.com/souyunku/DevBooks.git
git@gitee.com:souyunku/DevBooks.git
souyunku
DevBooks
DevBooks
master

搜索帮助