啃掉前端JavaScript面试题_前端面试懒加载

1.get和post请求在缓存方面的区别

post/get
get请求类似于查找的过程,用户获取数据,可以不用每次都与数据连接,所以可以使用缓存。
post不同,post所做的一般是修改和删除的工作,所以必须与数据库交互,所以不能使用缓存,因此get请求适合缓存。

2.说一下闭包

闭包就是能够读取其他函数内部变量的函数,或者子函数在外调用,子函数所在的父函数的作用域不会被释放。

3.如何解决异步回调地狱

promise
generator
async/await

4.说说前端中的事件流

html中与JavaScript交互是通过事件驱动来实现的,例如鼠标点击事件onclick,页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件监听器来预定事件。
什么是事件流:事件流描述的是从页面接收事件的顺序,DOM2级事件流包括下面几个阶段:
事件捕获阶段
处于目标阶段
事件冒泡阶段
addEventListener:addEventListener 是DOM2级事件新增的指定事件处理程序的操作,这个方法接收3个参数:要处理的事件名,作为事件处理程序的函数和一个布尔值,最后这个布尔值如果是true,表示在捕获阶段调用事件处理程序,如果是false,表示在冒泡阶段调用事件处理程序。
ie只支持事件冒泡

5.如何让事件先冒泡后捕获

在DOM标准事件模型中,是先捕获后冒泡,但是如果反向,对于同一个事件,监听捕获和冒泡,分别对应相应的处理函数,监听到捕获事件,先暂缓执行,直到冒泡事件被捕获后再执行捕获之前的操作。

6.事件委托

事件委托是指,不再事件的发生地上设置监听函数,而是在其父元素上设置监听函数,通过事件冒泡,父元素可以监听到子元素上事件的触发,通过判断事件发生元素DOM的类型,来做出不同的响应。

比如:在ul上添加事件监听,不在li上添加事件监听。

7.图片的懒加载和预加载

预加载:提前加载图片,当用户需要查看时可以直接从本地缓存中渲染。
懒加载:懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数。
两种技术的本质:两者的行为是相反的,一个是提前加载,一个是延缓甚至不加载。
懒加载对服务器前端有一定的缓解压力的作用,预加载则会增加服务器前端压力。

8.mouseover和mouseenter

**mouseover:**当鼠标移入元素或其子元素都会触发事件,所以有一个重复触发,冒泡的过程。对应移除mouseout;

**mouseenter:**当鼠标移除元素本身会触发事件,不包含元素的子元素,没有冒泡过程。对应移除mouseleave;

9.js的new操作符做了哪些事情

new操作符新建了一个空对象,这个对象原型指向构造函数的prototype,执行构造函数后返回这个对象。

10.改变函数内部this指针的指向函数(bind,apply,call区别)

通过apply和call改变函数的this指向,他们两个函数的第一个函数都是一样的表示要改变指向的那个对象,第二个参数,apply是数组,而call则是arg1,arg2这种形式。

刷面试题

刷题的重要性,不用多说。对于应届生或工作年限不长的人来说,刷面试题一方面能够尽可能地快速自己对某个技术点的理解,另一方面在面试时,有一定几率被问到相同或相似题,另外或多或少也能够为自己面试增加一些自信心,可见适当的刷题是很有必要的。

  • 前端字节跳动真题解析

  • 【269页】前端大厂面试题宝典

最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值