携程一面
楼主22届、面的暑假留任实习,前端开发岗,base上海。
面完有一段时间了,面了两个小时的样子,我只能大概记起一些了。
自我介绍blabla
问:为什么选择前端?
答:blabla
问:你的专业是硬件的,为什么想要从硬件转到软件?
答:blabla
问:你觉得你对js中哪些方面最熟悉?
答:promise。
问:promise原理?
答:blabla
问:除了promise之外,有哪些异步编程的方法?
答:说了个setTimeout,还有async/await。
问:async/await是新语法吗?或者说它只是一个语法糖?
答:它是promise的语法糖,将await前后的代码分为前后两块,后面的相当于放在then中。
问:它底层是怎么实现的?
答:不会了。。。。
问:来看一道题吧?(红绿灯,红灯3秒,黄灯1秒,绿灯2秒)可以用promise实现。
答:有十来分钟在调试在线编程环境,还把HR小姐姐叫来了。。。后来我用promise没写出来,写了async/await。
问:了解过数据结构吗?说一下js中的Map对象底层是以什么方式存储的。
答:(脑子里一片空白)应该是堆吧?
问:它是怎么实现按键值存取的?
答:不会了。
问:说说你的项目吧。有遇到什么问题吗?
答:图片缓存,数组去重,跨域。。。
问:说一下跨域怎么解决。
答:CORS、jsonp、正向代理、反向代理
问:说一下http的协议簇。
答:(完犊子,协议簇是啥都不知道,没看计网)不知道。知道它是使用tcp握手的。
问:三次握手,为什么不能是两次?
答:blabla
问:说一下https的原理。
答:公钥私钥blabla。
问:那个证书叫什么证书?
答:CA证书。
问:你的项目在电脑上吗?看一下你的代码。
答:(开了一下脚手架的项目,目测面试官是想看一下代码习惯怎么样)
问:看你的代码里喜欢用let,为什么优先选择了let而不是var?
答:let能保证在声明后再使用,不会导致意外的全局变量。
问:let为什么会导致暂时性死区?底层的原理是?
答:(不咋会)大概是词法环境有关。
问:说一下执行上下文吧。
答:blabla
问:常见的状态码有哪些?
答:200、301、302、304、404、500、101,304用于浏览器缓存,然后自己又说了一下缓存。
问:现在不是在网易实习吗?为什么想要来携程?
答:网易的实习很快就结束了,要去找暑假的实习工作了。
问:你家在广东,会考虑来上海发展吗?
答:blabla
反问:对学习有什么建议吗?
答:多看底层和核心原理。
很幸运地过了一面,二面面经后面写。
全部评论
(2) 回帖