- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
阿⾥Node.js⾯试题集合
1.
前提说明:
⾃⼰是在北邮论坛中找的学长内推,当时与学长问了关于阿⾥前端中是否有偏向JavaScript开发(中间件,⼯具库)的⽅向,学长说只有杭
州有类似岗位,最后把我内推到了淘宝UED的团队去了。
简历说明中侧重讲了关于Node.js的经历,JavaScript轮⼦的介绍以及⼀些使⽤了Node.js技术栈的Web项⽬。这点对于前端实习也是⼀个加
分项。
⼀⾯:
⼀⾯⾯试官问了⼤概有4年开发经验(包括了Java和JavaScript),上来除了标准的⾃我介绍以外,⼤概主要谈论了关于
Node.js,JavaScript语法以及Web开发的领域,对简历中提到的项⽬稍微深⼊问了⼀下。
1. babel或者coffee Script的这些编译到JS的语⾔是如何⼯作的?
这个问题是最纠结的,因为不太清楚⾯试官想问什么,⼤概说了关于Parse的东西,后⾯补充了关于babel的递归引⽤JS⽂件处理的东
西,估计有问题。
2. JavaScript的Async库基本原理是什么?
这个⽹上都有,就是Async的parrllel,waterfall的简单实现,讲出了把callback function替换this域,⽤⼀个list来遍历执⾏,把最终的
error或者result参数填回到Async.parallel([functionList], callback(err,result))中,差不多
3. 你写的Functional.js中monad, curry, laz 的解释和意义?
基本⾯向简历的作品,讲解了⼀点关于monad的简单意义(包裹,传递流,防⽌外部更改),curr 化对JS库函数的意义,还有lazy list
或者range对于那种⼤量数据处理的好处什么的。
4. Node.js框架同其他语⾔框架的⽐较?
答出Node.js特⾊的⾮阻塞IO和异步性,和Python的Flask对⽐,再讲解⼀下express中间件这种模式的特点,差不多了
5. Node.js与Swift在Web领域的未来?(因为我简历写了iOS开发和Swift)
随便扯吧……就是强类型的问题,基于原型⾯向对象优劣,语法糖的问题,还有⽀持库什么的。
其他就是⾃由提问,知道了阿⾥淘宝对前端实习要求基本不⾼,主要是JS熟悉,会Node有加分,⽽且没有固定谁来切图谁写JS ,⼀般都会
⼀点跨栈的东西。
⼆⾯:
(⼆⾯充分暴露了⾃⼰的若菜本质)。⾯试官是Winter,就是那个知乎的温兆伦的Winter (P8)。⼆⾯是电话+⽹页coding的部分,需要在
电脑,⽹络OK情况下进⾏,要⾃⼰提前准备好(不⾏就说明改个时间……)。开始电话问了⼀些关于JS的东西,什么闭包,Node.js的
require依赖顺序什么的……之后就开始正式⽹页coding。
1. 第⼀题:设计⼀个简单的红绿灯策略,⽐如红灯亮分别为console.log(“red”)这种,要求按照红3s-黄1s-绿1s顺序不断循环展⽰。
这个本来很简单的问题开始愣住了,因为原⽣的setTimeout好久没⽤了,问了问可以使⽤第三⽅库,但原⽣其实有笨办法,就是直接硬编三
个setTimeout,时间分别为0,3s,4s,然后最外层⼀个10s延迟的setInterval的来重复。虽然效果但是这肯定不对,因为这直接⽆视了事件
发⽣相对顺序,靠着全局时间来实现,长期下去由于JS 引擎的延时会最终乱掉。
第⼆种想法,我借⽤了Promise,⼤概就是⽤Promise⾥⾯resolve⼀个setTimeout的函数模拟事件结束,最后由Promsie.then控制流程,好
处就是绝对不会出现事件先后顺序错乱,⽽且写起来简单。
1 function button(color, time) {
2 let p = new Promise( function (resolve, reject) {
3 setTimeout( function() {
4
您可能关注的文档
最近下载
- 1200PLC+汇川PN伺服报文3使用方法详解.docx VIP
- 高标准农田项目施工部项目管理班子的人员岗位职责工.docx VIP
- 苏教版(2024版)七年级上册生物期末复习知识点清单.docx VIP
- 基于项目的温室气体减排量评估技术规范 太阳能热利用 编制说明.pdf VIP
- 2025年自动驾驶出租车(Robotaxi)商业化试点与运营模式优化报告.docx
- 石家庄铁道大学2022届毕业生质量报告.docx VIP
- 2024-2025学年小学美术一年级上册(2024)桂美版(2024)教学设计合集.docx
- Por Una Cabeza 一步之遥(总谱)Carlos Gardel曲曲谱.pdf VIP
- 量子信息与量子计算PPT课件.ppt VIP
- 建设用地报批培训课件.ppt VIP
文档评论(0)