03-webapi阶段⾼频⾯试题
前端⾯试题
###1、localStorage、sessionStorage和cookie的区别
答:共同点:都是可以⽤来存储数据
区别:
1.请求不同:
cookie 数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。
sessionStorage 和 localStorage不会⾃动把数据发给服务器,仅在本地保存。
2.存储⼤⼩限制也不同:
cookie 数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很⼩的数据,如会话标识。
sessionStorage 和 localStorage虽然也有存储⼤⼩的限制,但⽐cookie⼤得多,sessionStorage约5M、localStorage约5M 。
3.数据有效期不同:
sessionStorage:仅在当前浏览器窗⼝关闭前有效,⾃然也就不可能持久保持;
localStorage:始终有效,窗⼝或浏览器关闭也⼀直保存,因此⽤作持久数据;
cookie只在设置的cookie过期时间之前⼀直有效,即使窗⼝或浏览器关闭。
2、什么是事件代理(事件委托)
1、事件代理(事件委托),是JavaScript中绑定事件的常⽤技巧。顾名思义,“事件代理”,就是把原本需要绑定的事件委托给⽗元素,让⽗元素负责事件监听。事件代理的原理是DOM元素的事件冒泡
事件委托的好处:
减少事件数量,提⾼性能
3、什么是事件流
事件流是指从页⾯接收事件的顺序。也就是说,当⼀个事件发⽣时,这个事件的传播过程就是事件流。
事件流⼀般包含三个阶段:捕获⽬标冒泡
###4、js的运⾏机制是什么
答:js是单线程执⾏的,页⾯加载时,会⾃上⽽下执⾏主线程上的同步任务,当主线程代码执⾏完毕时,才开始执⾏在任务队列中的异步任务。具体如下
1.所有同步任务都在主线程上执⾏,形成⼀个执⾏栈。
2.主线程之外,还存在⼀个"任务队列(eventloop队列或者消息队列)"。只要异步任务有了运⾏结果,就在"任务队列"之中放置⼀个事件。
3.⼀旦"执⾏栈"中的所有同步任务执⾏完毕,系统就会读取"任务队列",看看⾥⾯有哪些事件。哪些对应的异步任务,于是结束等待状态,进⼊执⾏栈,开始执⾏。
4.主线程不断重复上⾯的第三步。
jquery框架面试题5、异步函数有哪些
JavaScript 中常见的异步函数有:定时器,事件和 ajax 等
###6、伪数组有哪些
1、参数 arguments,
2、DOM对象列表(⽐如通过 ElementsByTags 得到的列表)、childNodes也是伪数组
3、jQuery 对象(⽐如$("div"))
7、真数组和伪数组的区别
伪数组:
1、拥有length属性
2、不具有数组的⽅法
3、伪数组是⼀个Object,真数组是Array
4、伪数组的长度不可变,真数组的长度是可变的
###8、伪数组怎么转真数组
1、let newArr = Array.protype.slice.call(伪数组)
2、let newArr = Array.from(伪数组),ES6的新语法
3、let newArr =[...伪数组],使⽤扩展运算符,也是ES6的语法
9、DOM操作常⽤的API有哪些
1、创建节点
createElement
cloneNode
2、页⾯修改
appendChild
insertBefore
removeChild
replaceChild
3、节点查询
document.querySelector
document.querySelectorAll
4、节点关系
⽗关系型:parentNode
⼦关系型:children
5、元素属性
设置:setAttribute
获取:getAttribute
10、如何检测浏览器的类型
可以通过检测navigator.userAgent 在通过不通浏览器的不同来检测
11、JavaScript计时函数
1、setInterval()周期执⾏函数。间隔指定的毫秒数不停地执⾏指定的代码。
clearInterval()⽅法⽤于停⽌setInterval()⽅法执⾏的函数代码。
2、setTimeout()延迟执⾏函数。延迟执⾏指定的函数,只能执⾏⼀次
clearTimeout()⽅法⽤于停⽌执⾏setTimeout()⽅法的函数代码。
12、如何阻⽌冒泡和默认⾏为
答:阻⽌冒泡和捕获 e.stopPropagation()
阻⽌默认⾏为 e.preventDefault()return false
注意:addEventListener注册的事件,在⾼浏览器版本中,return false将没有效果,必须要⽤事件对象13、原⽣注册事件的⽅式有哪些?区别是什么
答:注册⽅式
1. on +事件名称
2. addEventListener
区别:
1.使⽤on注册事件,同⼀个元素只能注册⼀个同类型事件,否则会覆盖。
2. addEventListener可以注册同⼀事件多次,不会被覆盖。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论