前端JS基础面试题总结(6)

1、JS是单线程还是多线程的语言

单线程

2、渲染页面的过程是同步还是异步执行

同步

3、列举三个常见的异步执行。

两个定时器,ajax,promise.then()

4、怎么阻止默认事件执行

• e.preventDefault();//阻止默认事件
• return false
• e.returnValue=false;//IE

5、怎么阻止事件冒泡。

e.stopPropagation();e.cancelBubble=true;//兼容IE

6、简述事件传播机制。

在点击事件时,浏览器会首先从外往里捕获,找到点击的元素,这个阶段称为捕获阶段。
捕获完后,会从里往外执行点击事件,这个阶段叫做冒泡阶段。
总的来说,捕获触发的是从外向里触发事件;冒泡触发是从里向外触发事件。
且捕获比冒泡阶段先执行。

7、什么是事件委托。

• 通过点击子级元素来触发父级元素的事件
• 利用事件源e.target||e.srcElment来获取点击的元素

8、DOM0级事件与DOM2级事件有什么区别

DOM0 xx.onclick =function(){}
基于给元素的私有属性赋值,当条件达到触发私有属性方法
1.如果元素没有某个事件的私有属性,就不能基于这个方法绑定0级事件
2.只能绑定一个方法,如果多个绑定,只有最后一个绑定上
3.都是冒泡阶段触发
DOM2
xxx.addEventListener(‘click’,fn,false)
xxx.removeEventListener(‘click’,fn,false)
dispatchEvent
基于浏览器事件池机制来完成的,通过addEventListener往事件池中增加方法,removeEventListener从中移除方法
1.只要浏览器中有这个事件,都可以通过2级事件来绑定,如transitionend,DOMContentLoaded(jquery中的ready事件就是监听这个事件实现的)
2.同一个事件可以绑定多个方法,触发顺序,先绑定的先触发
3.可以人为规定在捕获或冒泡阶段触发,默认是在冒泡阶段

9、DOM2级事件如何控制事件在捕获阶段触发。

第三参数传true

10、如何移除绑定的DOM2级事件。

xxx.removeEventListener()

11、window.onload与$(document).ready()的区别。

1.window.onload用0级事件绑定的,只能绑定一个函数;
$(document).ready()用2级事件绑定的,监听DOMContentLoaded事件实现的
可以绑定多个函数 
2.$(document).ready()是页面DOM结构渲染完成执行
window.onload是页面全部渲染完才执行,比ready晚

12、什么情况会触发回流与重绘?

元素样式的改变,但宽高、大小、位置不变,如字体颜色,背景颜色等,会触发页面的重绘。
元素的宽高、大小、位置等影响页面布局改变的样式改变,会触发页面的回流。

13、如何减少回流和重绘?

1.读写分离
2.利用文档碎片统一修改元素

14、列举三个移动端常用事件。

ontouchmove ontouchstart ontouchend

15、如何监听页面可视窗口发生变化。

window.onresize

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南笙前端工程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值