第一题题目:

<script>
let a = new Date() === new Date()
let b = new Date("2020-08-25") == new Date("2020-08-25")
let c = new Date("2020-08-25").toString() == new Date("2020-08-25")
let d = new Date() === new Date().toString()
let e = 0.1 + 0.2 === 0.3
let f = 0.1 +0.2 == 0.3
console.log(a,b,c,d,e,f)
</script>

各位老哥思考十秒快速给出答案哦

答案:false false true false false false

第二题题目:

请构造一个obj 使得以下代码打印值为true

let obj = …
let bool = obj.val === 1 && obj.val === 2 &&obj.val === 3
console.log(bool)

分析:在进行判断时会获取val值,但是此时obj内部并没有一个val值。所以我们在obj内部用get方法返回一个参数,每次返回加一,就可以满足判断条件

即obj应该构造成这样
let obj = {_val:1,get val(){ //重点return this._val ++}
}let bool = obj.val === 1 && obj.val === 2 &&obj.val === 3
console.log(bool) //结果打印true

第三题题目:

<script>
async function async1(){console.log('1')await async2()console.log('2')
}async function async2(){await new Promise((resolve)=>{console.log('3')setTimeout(()=>{console.log('4')resolve()})})console.log('5')
}
console.log('6')
setTimeout(() => {console.log('7')
})
async1()new Promise((resolve) => {console.log('8')resolve()
}).then(() =>{console.log('9')
})
console.log('10')
</script>

答案: 6 1 3 8 10 9 7 4 5 2 (有没有答对呀)
以下是小弟的分析
1.首先打印 6 这是毋庸置疑的 然后遇到定时器7 先把它加入宏任务队列中
2. 执行async1函数,则执行打印 1 接下来进入async2函数
3.执行promise函数 打印3 遇到定时器4 加入宏任务队列 由于async2阻塞了后面代码的执行
4.则执行 new Promise函数 打印了8 resolve()一个状态
5.继续执行同步函数console.log(‘10’),打印了10
6.我们先了解一下
微任务包括:promise.then(注意是promise.then) , process.nextTick等
宏任务包括: script(读取 执行script代码也算一种任务) setTimeout setInterval等
我们微任务宏任务同时存在时是先执行完所有的微任务再执行第一个宏任务 所以先执行微任务promise.then 打印 9
7.接下来执行第一个宏任务 打印7
8.然后执行第二个宏任务 打印4
9.promise函数执行完就往下走 所以接下来打印 5
10.最后打印2哟

补个小知识点:手写一个promise

<script>
function MyPromise(fn){let self = thislet status = 'pending'let value = undefinedlet reason = undefined//成功执行的函数function resolve(value){if(status == 'pending'){self.status = 'resolve'self.value = value}}//失败执行的函数function reject(reason){if(status == 'pending'){self.status = 'reject'self.reason = reason}}try{fn(resolve,reject)}catch(e){reject(e)}//添加then方法MyPromise.prototype.then = (resolve,reject) => {if(this.status == 'resolve'){resolve(this.value) //成功状态下}if(this.status == 'reject'){reject(this.reason)  //失败状态下}}}
//测试自己所写的promise
let promise2 = new MyPromise((resolve,rejeect)=>{resolve(520)
})
promise2.then(res=>{console.log(res) //打印520
})
</script>

第四题题目:什么是节流/防抖,请实现节流防抖函数

节流:是指在一个规定的单位时间内,只能有一次触发事件的监听回调,如果在一个单位时间内某事件被多次触发,只能有一次生效
防抖:是指事件被触发n秒后执行的回调,如果在这n秒内再次被触发,则重新计时(用在点击事件上)

防抖代码:

<script>
//防抖
function debounce(fn,delay){var timer = nullreturn function(){var args = arguments//如果存在定时器if(timer){clearTime(timer)//清除定时器timer = null}timer = setTimeout(()=>{fn.apply(this,args)},delay)}
}
</script>

节流代码:

<script>
//节流
function throttle(fn,delay){var parTime = Date.now()return function(){vat _this = thisvar args = argumentsvar nowTime = Date.now()if(nowTime - parTime >= delay){parTime = Date.now()return fn.apply(_this,args)}}
}
</script>

第五题题目:请谈谈你对node.js的理解

1.运行原理
2.优缺点
3.应用场景
4.对前端工程师的意义
5.你用node.js做过什么,未来想用node.js做什么
(这个我也不会呀)

以上就是面试的五道题

高级前端面试题(来自一位朋友的投稿哟)相关推荐

  1. 2018 大厂高级前端面试题汇总

    (给前端大全加星标,提升前端技能) 作者:木易杨 本人于7-8月开始准备面试,过五关斩六将,最终抱得网易归,深深感受到高级前端面试的套路.以下是自己整理的面试题汇总,不敢藏私,统统贡献出来. 面试的公 ...

  2. 2022大厂高级前端面试题汇总

    本人于7-8月开始准备面试,过五关斩六将,最终抱得网易归,深深感受到高级前端面试的套路.以下是自己整理的面试题汇总,不敢藏私,统统贡献出来. 面试的公司分别是:阿里.网易.滴滴.今日头条.有赞.挖财. ...

  3. 【面试】2018大厂高级前端面试题汇总

    面试的公司分别是:阿里.网易.滴滴.今日头条.有赞.挖财.沪江.饿了么.携程.喜马拉雅.兑吧.微医.寺库.宝宝树.海康威视.蘑菇街.酷家乐.百分点和海风教育.  阿里 使用过的koa2中间件 koa- ...

  4. 大厂高级前端面试题答案

    阿里 使用过的koa2中间件 https://www.jianshu.com/p/c1e... koa-body原理 https://blog.csdn.net/sinat_1... 有没有涉及到Cl ...

  5. 2019前端面试题汇总

    面试题 js + 框架 闭包的作用 函数内部变量外用 || 在一个函数内部嵌套一层或多层函数 可以将内部变量外用 副作用: 违背垃圾回收机制 ie下回造成内存泄漏 解决副作用方案: 变量使用结束后删除 ...

  6. 一份来自于全球的前端面试题清单,看看老外喜欢考哪些题(部分有答案)

    方括号中的蓝色标题是题目的出处,有些题目在原址内包含答案.搜集的大部分外国前端面试题没有做翻译,单词并不难,大家应该看得懂.题目旁边的方括号内, 简单记录了与此题相关的知识点.总共大概一千多道,包含国 ...

  7. 重要前端面试题,来自一个2022年面试大牛(上)

    面经链接 2022高频前端面试题--CSS篇 - 掘金 精心整理HTML/CSS面试题(2022求职必看) - 掘金(今天正在看的) 一.css面试题 1.Dom事件模型(分为捕获和冒泡) 一个事件发 ...

  8. 【前端】前端面试题整理

    前端和计算机相关知识 你能描述一下渐进增强和优雅降级之间的不同吗 浏览器兼容问题 如何对网站的文件和资源进行优化? 怎么学习前端?怎么接触前端新知识? 关于前后端分离 关于浏览器内核(渲染引擎) 浏览 ...

  9. 前端面试题集锦——JavaScript

    前端面试题集锦--JavaScript 1.请你谈谈 Cookie 的优缺点 cookie是存储于访问者计算机中的变量 cookie是浏览器提供的一种机制 可以由JavaScript对其进行控制(设置 ...

最新文章

  1. python数据分析基础 余本国_Python数据分析基础
  2. python直方图均衡化
  3. fsb,fev文件格式转换,提取与打包
  4. Jetpack CameraX 最新最全解读-开发实践
  5. 【HDU - 5890】Eighty seven(bitset优化背包)
  6. Gradle笔记——Gradle的简介与安装
  7. Serverless 实战 —— 函数计算 + Typescript 实践
  8. c语言popen函数多线程,关于多线程:多线程环境中的Python-Subprocess-Popen行为不一致...
  9. GPS之Ublox方案设计
  10. CM201-1广东移动盒子YS版(易视腾代工)TTL方式保留原系统 或不保留原系统方法
  11. bp神经网络python源代码_python构建bp神经网络_曲线拟合(一个隐藏层)__2.代码实现...
  12. 在Mac系统下配置端口映射
  13. python B站UP主所有视频封面下载
  14. NKOJ C2153「迎新春,贺新年,LJ24祝大家新年快乐」赛后总结帖by TangH
  15. git笔记之README.md格式
  16. IDEA中怎么设置黑色或白色背景
  17. Qt数据可视化QChart - QBarSet柱状图
  18. (java)输入一个正整数n(1≤n≤6)和n阶方阵A,交换方阵A中的最大值与最小值位置。假定方阵A中的最大值与最小值都唯一。
  19. 9、共享变量(Broadcast Variable和Accumulator)
  20. 银行考试计算机基础知识及答案,银行考试计算机基础知识试题及答案-精品

热门文章

  1. 三、jQuery 中的 DOM 操作(超详细)
  2. 最安全的微信群管理工具推荐
  3. 使用JDK中的安全包对数据进行加解密
  4. VirtualBox导入虚拟电脑
  5. 以太坊--Uniswap分享
  6. 过压保护芯片,高输入电压(OVP)
  7. html指定区域的背景颜色,JS实现点击颜色块切换指定区域背景颜色的方法
  8. 启用计算机的无线同屏,Windows10如何使用无线同屏功能?
  9. AnyProxy抓包实践
  10. Python爬虫识别中文字符和标点符号