更多课程 选择中心

Web培训
美国上市教育机构

400-111-8989

Web培训

Web前端面试题汇总之JS篇(三)

  • 发布:Web前端培训
  • 来源: 小小张 程序员成长指北
  • 时间:2019-05-29 14:44

今天小编要跟大家分享的文章是关于Web前端面试题JS的相关知识。在之前的文章中小编也为大家分享过一些相关面试题,如果你想参加Web前面面试,正在做面试准备,就来看一看小编今天为大家准备的文章吧!

Web前端面试题汇总之JS篇(三)

一、for...in 和 for...of的区别

1. for...of 是ES6新引入的特性,修复了ES5引入的for...in的不足

2. for...in 循环出的是key,for...of循环出的是value

3. for...of不能循环普通的对象,需要通过和Object.keys()搭配使用

4. 推荐在循环对象属性的时候,使用for...in,在遍历数组的时候的时候使用for...of

二、new一个对象,这个过程中发生了什么

var obj = new Object("name","sansan");

1. 创建一个新对象,如:var obj = {};

2. 新对象的_proto_属性指向构造函数的原型对象。

3. 将构造函数的作用域赋值给新对象。(也所以this对象指向新对象)

4. 执行构造函数内部的代码,将属性添加给obj中的this对象。

5. 返回新对象obj。

三、js的防抖和节流是什么

· 防抖: 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。

使用场景:

1. 给按钮加函数防抖防止表单多次提交。

2. 对于输入框连续输入进行AJAX验证时,用函数防抖能有效减少请求次数。

简单的防抖(debounce)代码:

function debounce(fn, wait) {

var timeout = null;

return function () {

if (timeout !== null) clearTimeout(timeout)

timeout = setTimeout(fn, wait)

}

}

// 处理函数

function handle() {

console.log(Math.random())

}

//滚动事件

window.addEventListener('scroll', debounce(handle, 2000));

· 节流: 就是指连续触发事件但是在 n 秒中只执行一次函数。节流会稀释函数的执行频率。

function throttle(func, delay) {

var prev = Date.now();

return function () {

var context = this;

var args = arguments;

var now = Date.now();

if (now - prev >= delay) {

func.apply(context, args);

prev = Date.now();

}

}

}

function handle() {

console.log(Math.random());

}

window.addEventListener('scroll', throttle(handle, 2000));

区别:

函数节流不管事件触发有多频繁,都会保证在规定时间内一定会执行一次真正的事件处理函数,而函数防抖只是在最后一次事件后才触发一次函数。 比如在页面的无限加载场景下,我们需要用户在滚动页面时,每隔一段时间发一次 Ajax 请求,而不是在用户停下滚动页面操作时才去请求数据。这样的场景,就适合用节流技术来实现。

以上就是小编今天为大家分享的关于Web前端面试题汇总之JS篇(三)关于JS相关面试题的文章,希望本篇文章能够对正准备参加Web前端面试的小伙伴们有所帮助。想要了解更多Web前端面试相关知识记得关注达内Web培训官网,小编将继续为大家推荐相关面试题!最后祝愿小伙伴们能够面试成功,顺利找到工作!

【免责声明:本文图片及文字信息均由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。】

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Web前端面试题汇总之JS篇(二)
下一篇:Web前端面试题汇总之JS篇(四)

Web前端面试题汇总之JS篇(五)

Web前端面试题汇总之JS篇(四)

Web前端面试题汇总之JS篇(三)

Web前端面试题汇总之JS篇(二)

选择城市和中心
黑龙江省

吉林省

河北省

贵州省

云南省

广西省

海南省