阿里前端(Node.js方向)一面总结

8 月 17 日上午 10 点一刻,我和同事正在讨论:

“这个问题就是这样,下载接口这样就可以了,没必要太麻…”

这一刻,荣耀手机响了

“回首依然望见故乡月亮

黑夜给了我黑色眼睛

我却用它去寻找光明……”

一看,杭州,我和同事说,你等我一会,咱一会继续讨论…

“喂,您好”

“你好,请问是…”

“好的,那下午 3:00 等您电话”

回来继续讨论问题… 中午和同事吃完饭,突然晴天霹雳,倾盆大雨突如其来,猝不及防,马路上的积水已经淹没了滚动的车轮,我没带伞,但风雨无阻,我急急忙忙的跑回了学校,拖鞋溅起的水花洒湿了我的臀部…终于,大雨在我跨进寝室楼的那一刻戛然而止,看到老乡群里还在成语接龙,正好到了“为所欲为”,果不其然,下一句是“为你麻痹,逼上梁上,山穷水尽,尽力而为,为所欲为”。

我洗完澡,换上另一条花裤衩,已经两点又一刻,看看手机电量 78%,嗯,够了。左手拿着手机,右手握住雨伞,右脚一拉门,“嘣”一声响,门关好了。

打印了一份简历,来到平时办公的工作室门前,里面亮着灯,是的有人。轻轻敲了敲门,正在屋内复习高等代数的考研小妹妹从屋内传来优雅的呼声:“谁呀”,“是我,贵宾”。我告诉她,一会我有个面试,过来这边安静一些。聊了一会,我说我准备面试去了。

有点渴,放下手中的雨伞,看看上次 A 同学带过来的那盒龙井,还有最后两包,一包已经拆开了。拿起热水壶到隔壁热水房打了一壶热水,嗯?尿意浓浓?进入厕所,抬着头探了一口气,身体不自主哆嗦了一下。洗了一把脸,拿着热水来到咖啡厅,咖啡厅已经放假关门了。将手中的热水壶放下,背后是一个书架,书架背后还有一躺沙发,我起身去拿茶壶和杯子还有铁观音。 沏好茶,静坐,窗外雨滴声已经停了,看了看时间, 2:45。

不出意外,再过一刻钟,我的手机将再次响起,仍然会是那个杭州的电话,当然唱的还是那首歌“回首依然望见故乡月亮…”。就在这时候,远处传来了脚步声,“哒,哒,哒…”,清脆、均匀、细腻,是高跟鞋与光滑地面的碰撞,不对,还有手机里传出的民谣。我仿佛看到了她窈窕的身材,仿佛看到了她扭动的屁股。声音在靠近,我激动的起了身,对的,她再向我走来。5米、4米、3米,我看着她,她也看着我,这一刻持续的时间如 HTTP 请求花费的时间,精确到了毫秒。正当我张开嘴“你…”,还没等完全吐出口,她从我身边走过,在书架后面的沙发中似坐似躺,如葛优,玩起了手机。我控制住了自己,往咖啡厅的沙发背她而坐,她关掉了音乐,我不知道她为什么来这里。

茶已经沏开,往 10 毫升茶杯中到满了一杯,“噗~”吹了一口,细细品尝,清香雅韵,如天然般的兰花,滋味纯浓,香气馥郁而持久… 5分钟过去了,现在是 2:51,远处再次响起了脚步声,粗糙、逆耳。是一位男孩,男孩子向她走去,我起身踱步于咖啡桌的空隙之间,在等待。男孩子在女孩旁边坐下,听到“波~”,回头一看,书架后面,男孩亲了一下女孩子。我装作没看到,回到沙发,再次背她而坐。看了一下手机,2:58。

打开网易云音乐,找到收藏着的民谣专辑,嗯,确实很多都已经变灰。点了一首老狼的《我要你》,我有点紧张,再喝一口茶,心中默默念了一遍自我介绍。3:05分,手机终于想起,还是那个杭州的电话,还是那首歌“回首依然望见故乡月亮,黑夜给了我黑色眼睛…”

“喂,您好”

“你好,请问是…”

“是的”

“那我们开始面试…”

然后就是正儿八经的面试了

  • 自我介绍

    balabala…

  • 你说你在腾讯大连实习,说一下腾讯大连是一个什么情况?

    腾讯大连是一个腾讯全资子公司,做的是深圳那边的项目,balabala…

  • 说一下你实习在项目中做了什么?

    背景...,
    角色...,
    任务....,
    收获....
    balabala一大堆...
    
  • 实习中提到回掉地狱,说一下你的解决方案

    我说开始使用 async 库,后来服务器升级了 Node 版本,使用了 async await 的形式

  • 提到 async await 说一下内部机制(蒙蔽),细问 await 干什么的?

    (回答不好,面试官好像不是很满意)我说 async await 更多像是语法糖,就是把 Generator 生成器包装了一下。

    await 等的是异步执行完成,然后将结果返回,成功的话往下走,失败的话 catch 捕获

  • Promise 内部实现机制(蒙蔽中)

    Promise 是 resonve reject 形式,成功走 resove 失败走 reject ,可能理解不是很透彻目前还处于使用阶段,没仔细研究过底层细节(跳过,往后面引)

  • 项目中提到了 Token ,问了为什么选择 Token, 与 Seesion 区别?

    (答不好)Redis 中只存了 Session,使用 Token 可以解决多终端同时在线,Token 不用考虑集群中的同步问题, Token 计算比 IO 请求要快(可能不是这样)

  • Session 怎么识别用户?

    前端传 Cookie,Cookie 中保存了 Session id…

  • 那你是怎么做 Token 延时的?

    (答不好) Token 的过期时间延时还没解决,但我有两个方案,一是每次客户端请求重新生成 Token,然后返回(显然不是最好的);二是服务端缓存 Toke,每次更新 Token 缓存过期时间,面试官继续问…

    其实我最好的答案没说出来,可能有点紧张。最好的想法是将 token 的过期时间缓存,只有当 Token 快要过期的时候才更新 Token。

  • 那你用 Token 和 Session 还是有什么区别?(都是套路啊,哈哈~)

  • 问了为什么用 MongoDB ?MongoDB 和 MySQL 的存储方式有什么区别?

    (存储方式?蒙蔽中,这么大的话题怎么说清楚?随便说说…)存储方式倒是没有仔细研究过,倒是知道他们之间的一些区别,MongoDB 存的是 bson,MySQL 直接存数据…(没说清楚),MongoDB 不支持事务…

  • 实习中提到了跨域,说一下跨域的解决方案

    跨域常用方式两种,JSONP 和 CROS,说了一下 JSONP 的原理,按照 jQuery 源码中思路说(往 jQuery 中引),再说了一下 CROS 的坑,按照之前的博客

  • 问怎么处理 options 预检请求

    Node 端直接返回 200 状态码…

  • 提到看过 jQuery 源码,问$(selector) 后返回什么?是数组还是对象?(被动蒙蔽)

    (开始毛不犹豫的说是对象,因为有点忘记了,模糊了)是一个可遍历对象,类似数组的对象,每个 dom 元素是一个对象,加了一个 length 属性 …(面试官问那如果是对象多个元素怎么可以按照数组取,蒙蔽了赶紧说)好像是数组,在返回之前调用了一个 makeArray 的方法转为数组了(面试官接着问,那是数组怎么还可以继续调用后面的方法)…又解释一通

    最终又回来看源码: 靠 id 匹配返回对象,考类这样能匹配多个元素的调用 makeArray 返回数组…

  • 提到 jQuery 中的继承,问 JS 中的继承,细问原型冒充,提到 call 和 apply

    ES6 之前,拷贝继承,原型继承,原型冒充也可以继承特定属性,实现多继承,ES6 引入了 extends 关键字。

    细问原型冒充怎么实现,balabala…

  • 接触 Node 才这么一个半月?你怎么能胜任 Node 方向?

    是的,但是我之前一直接触过 JS,JS 基础还是可以的(往 JS 基础引,希望问更多基础内容…,失败,没问),另外 Node 需要操作数据库,我数据库方面还不错(往数据库引…失败,没问)

  • 说一下你在学校的那个项目?

    您指的是哪个项目?神经网络那个还是…

    不,就业网那个

    balabala…

  • 前端用什么? 后端用什么?

    前端用的 JS 多一些,使用 jQuery(再次引导,失败) ,大日历使用了 calendar .js 库,后端数据动态添加…

    后端也算是做了一些数据库的优化(再次引导,失败)

  • 你还有什么要补充?

    我靠,这么快结束了,蒙蔽中...
    数据库不问了?
    网络不问了?
    操作系统不问了?
    算法不问了?
    安全不问了?
    

    感觉希望不大了,死皮赖脸的说:

    “数据库方面咱不问吗?(数据库是长项,希望能加分)”

    “数据库今天咱不问了”

    sad……

    “那今天咱先这样,后续有什么问题我们 HR会联系你…”

    “额,,,那个,,,有个问题”

    “哦,对了,你还有什么问题要问我吗?”

  • 你还有什么问题要问?

    从今天面试情况来看,如果我要从事 Node 方向接下来应该在那方面更加加强学习一下?

    “你项目经理不错,但是(瞬间泪奔…估计没戏了)你要做 Node 开发 Node 方面还需要加强,最起码 async await 原理你应该懂, Promise 实现细节这些今天面试都没有体现出来…”

    “哦,知道了,那我回头加强这方面的学习,感谢面试官”

    “嗯,那没什么问题今天就到这”

嘟,挂了…历时 36 分钟 9 秒 … 感觉已挂。“尽人事,听天命”,完。

本文标题:阿里前端(Node.js方向)一面总结

文章作者:Gbin Peng

发布时间:2017年08月17日 - 17:08

最后更新:2017年12月04日 - 13:12

原始链接:http://yoursite.com/2017/08/17/first-alibaba-node-interview/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。