首页 > 其他分享 >TikTok 专访:您可能有兴趣了解的 4 个前端问题

TikTok 专访:您可能有兴趣了解的 4 个前端问题

时间:2022-09-06 01:00:08浏览次数:84  
标签:oNode2 oNode1 专访 TikTok 前端 javascript Promise io 节点

TikTok 专访:您可能有兴趣了解的 4 个前端问题

这是一次难忘的面试经历

Photo by 安德烈科·波迪尔尼克 on 不飞溅

最近,我的好朋友在换工作,在网上收到了很多offer。

其中一个来自一家名为 抖音 ,你可能非常熟悉。他们让我的朋友当场写代码来实现4个复杂方法的功能。

1. 尝试实现 Promise.all API

承诺.all() 方法将一个可迭代的 Promise 作为输入,并返回一个 Promise,该 Promise 解析为输入 Promise 的结果数组。

当输入的所有承诺都已解决,或者输入可迭代不包含任何承诺时,此返回的承诺将解决。

它会在任何输入承诺拒绝或非承诺抛出错误时立即拒绝,并将拒绝第一个拒绝消息/错误。

自己实现一个

做个测试

2.设计一个可以设置过期日期的localstorage API

localstorage不会像cookies一样自动过期,所以过期时间需要自己维护。

我的思路是:

使用 setItem 时,保存过期时间。使用getItem时,将时间与当前时间进行比较,如果大于当前时间,则直接返回该值,否则需要通过removeItem移除该值并返回null。

做个测试

基本符合题主的要求。当然我们也可以处理异常,比如空间满、设置错误等。

3.找到两个节点最近的公共父节点,包括节点本身

介绍:

oNode1 和 oNode2 在同一个文档中,不会是同一个节点。

 函数 findCommonParent(oNode1, oNode2) {  
  _// 这里填写_  
 }

相信大家看到这个问题都会用到递归,但是没有明确的思路。

这个时候不要紧张。从问题中找出更有效的信息,尽量多用笔画(如果是现场面试,记得只带一支铅笔,有时多画就会有想法)。

1.1 两个节点处于同一级别

让我们试着画出这两个节点之间可能存在的关系。如下图所示,它们的直接父节点就是答案。

1.2 两个节点互为祖先

oNode1 是目标节点。当然,反过来也是一样的。 oNode2 也可以是 oNode1 的祖先。

1.3 两个节点之间没有关系

如下图所示,这两个节点的距离很远,似乎没有任何关系,但是从其中任何一个节点往上搜索,肯定能找到一个包含oNode1或oNode2的点。

1.4 递归实现版本

根据上面的分析,相信你很快就能写出下面的代码了。

1.5 遍历实现版本

递归很容易理解,仅仅通过遍历就可以实现吗?事实上,递归问题往往可以通过遍历来解决。

4.使用reduce实现map功能

这个问题会比较简单,我们直接写代码

 输入:[1,2,3]  
 输出:[2、4、6]

最后

谢谢阅读。 我在看 **** 转发您的关注和阅读更多优质文章。

[

“我因为 Promise.all 而失去了工作机会”

一次面试经历让我很伤心。

javascript.plainenglish.io

](/i-lost-a-job-opportunity-just-because-of-promise-all-be396f6efe87)

[

采访者:“npm run xxx”发生了什么?

一个大多数人都不知道的秘密。

javascript.plainenglish.io

](/interviewer-what-happened-to-npm-run-xxx-cdcb37dbaf44)

[

面试官:“x !== x”在 JavaScript 中可以返回 True 吗?

你可能不知道的五个神奇的 JavaScript 知识点!

javascript.plainenglish.io

](/interviewer-can-x-x-return-true-in-javascript-7e1d1fa7b5cd)

[

现在是 2022 年,不要再滥用箭头功能了

不应该使用箭头函数的 4 种情况。

javascript.plainenglish.io

](/its-2022-don-t-abuse-the-arrow-function-anymore-905862a9c668)

更多内容在 ** 纯英语.io** .注册我们的 ** 免费每周通讯** .跟着我们 ** 推特** , ** 领英** , ** YouTube** , 和 ** 不和谐** .

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/17538/54320600

标签:oNode2,oNode1,专访,TikTok,前端,javascript,Promise,io,节点
From: https://www.cnblogs.com/amboke/p/16660251.html

相关文章

  • xx技术2023前端开发卷A
    xx技术2023前端开发卷A选择以下哪种情况会导致浏览器报HTTPS证书告警()网站的https安全证书确实已经过期,根据https安全证书签发国际标准,https安全证书颁发不能超过两......
  • 前端js vue的语音播报
    目前h5新增一个文字转语音的功能(但是正在完善中,勉强能用),h5新增的SpeechSynthesisUtterance实例首先new一个SpeechSynthesisUtterance对象使用实例对象的一些属性,包括......
  • 前端面试Ajxa常见问题整理
    1、Ajxa的交互流程有哪几步?(1)创建Ajxa对象xhr=newXMLHttpRequest(2)规定请求地址xhr.open(method,url,async)(3)等待服务器相应xhr.onload(4)向服务器发送请求xhr.send......
  • 前端性能优化-防抖
    防抖:如果短时间内大量触发同一事件,只会执行一次函数,将多次执行变为最后一次执行。防抖函数的应用场景:按钮提交场景:防⽌多次提交按钮,只执⾏最后提交的⼀次服务端验证......
  • 【校招VIP】[前端][二本][6分]简历的板式比较标准
    关注【校招VIP】公众号,回复【简历】,添加校招顾问微信,即可获取简历指导!本份简历是一位21届二本前端同学的简历,简历评分6分。一、学员简历二、指导意见简历的版式没有问......
  • 前后端分离前端框架的主要内容是什么?
    当前,前后端分离已经成为发展趋势和方向,是互联网项目开发的业界标准使用方式。那么,大家知道什么是前后端分离吗?其实,就是通过nginx+tomcat的方式(也可以中间加一个nodejs)有效......
  • 下载前端项目中自带的文件到本地
    functiondownload(down_questionNo,type){$.ajax({url:"/comtion-web/doc/"+down_questionNo+type,//本地文件存放的位置type:"GET",async:false,mimeType......
  • 日常开发记录-前端浏览器高级调试技巧整理
    1. 一键重新发起请求场景:在和后端联调时用的比较多,快速的重发请求,不用再在页面上点击步骤:选中“Network” 点击Fetch/XHR选择要重新发送的请求(鼠标点击一下)右......
  • [前端][一本][6分] 项目部分的描述可以多加扩展
    关注【校招VIP】公众号,回复【简历】,添加校招顾问微信,即可获取简历指导!本份简历是一位21届一本前端同学的简历,简历评分6分。一、学员简历二、指导意见简历版式没有问题......
  • 【前端】相关高效率工具(已更新21个)
    1、AnimXYZ官网:https://animxyz.com/AnimXYZ可以帮助你拆过你见,自定义和组合复杂的动画!AnimXYZ使用CSS变量来实现动画,无需编写单个关键帧而实现无限数量的独特动画!节省......