猿辅导前端面经
8-12 一面
自我介绍,实习,项目……
开篇谈项目,项目如何架构、难点
跨域,如何解决,几种方式
因为是数据展示平台,问了一个前端如何处理数据精度丢失的问题
项目中如何协调接口---衍生出了HTTP几种请求方式,特别问到了OPTION
浏览器的进程有哪些
浏览器如何渲染的----衍生出了合成层的概念
又问了一下实习体验,对业务的理解
八股环节
计网OSI模型,以及各层的协议及作用
tcp三次握手、四次挥手
HTTP1.0 1.1 2.0……
是否了解web2.0----我直接说不是很清楚
做题环节
一道智力题 给一个5L 瓶子和6L瓶子,问如何获得3L水
一道算法题(但面试官说他其实更想考业务题,但我选择了算法)
手写一个flatten函数
然后从我写声明函数的习惯中又提出了关于var let 以及const的问题
问let 与 const的区别,能否互相替换,是否会改写原来的flatten方法等等
反问环节。。。
8-20 二面
自我介绍,实习,项目。。。
继续谈项目难点,提到了项目用echarts作图,于是就着重问了这个
echarts是怎么在前端构建的---我回答的是基于canvas
canvas是位图还是矢量图,位图和矢量图的区别
echarts是如何在canvas中识别鼠标移到了哪个元素上的
如果在canvas上做一个三角形区域,如何判断鼠标是否进入
知识问答
对JavaScript的新标准了解多少(ES6-N)如何看待这些新标准----我回答的是语法糖
浏览器在执行JS是单线程还是多线程,JS能否多线程执行
JS多线程提到了异步,问了下有些什么异步方法---深入promise---原理---问promise状态能否多次改变
通过promise发起ajax请求应该写在promise里还是then里面
浏览器的渲染过程---衍生出Html解析过程,如何生成domtree---中间提问到了如何通过正则表达式提取元素标签,如何区分文本内的<和>符号
还有一些零零碎碎的小提问记不太清了,不是很难
做题环节----这次做的有点不太好,时间花多了只做了一题
升序链表去重(包括重复的那个结点)
1-2-3-4 => 1-2-3-4
1-1-1-2-3-4 => 2-3-4
要求时间On 空间On
进阶时间On 空间O1
第一次尝试用map来去重,思路对了但是莫名内存超了
第二次原地删除链表
面试官给出了建议
反问环节----这块我一直不太会问,所以还是问了下对我刚才的表现有没有什么建议,面试官理解错了
回答我说按规定不能反馈关于面试结果的内容,然后就随便聊聊就差不多了////看了看别人的面经感觉
下次应该问问关于公司的技术栈和业务情况。。。不然确实不知道该问啥啊orz
8-31 隔了这么久发来感谢信了,可恶