[转载]前端 阿里p6面试题集锦含答案

一、说一下你了解CSS盒模型。 前端

盒模型分为:IE的怪异盒模型和标注浏览器的盒模型,而后能够经过box-sizing属性控制两种盒模型的变换。  

二、说一下box-sizing的应用场景。 vue

这个也不难,简单说了一两个应用场景,具体就不一一细说了。node

三、说一下你了解的弹性FLEX布局. react

 

 

 

 

 

 

 

 

 

 

四、说一下一个未知宽高元素怎么上下左右垂直居中。 webpack

1.flex >>> display: flex;justify-content: center;align-items: center; // ie10以上
2.transform >>>> position:absolut; left: 50%;top: 50%; transform: translate(-50%, -50%)  // 不支持IE9如下不支持transform属性

六、说一下原型链,对象,构造函数之间的一些联系。 git

1.构造函数:构造函数首字母大写,就是在一个普通的函数前面加了new运算符,其本质仍是一个函数,因此构造函数都有函数的prototype属性。
2.实例:实例是经过构造函数建立出来的对象
3.原型:构造函数在建立的过程当中,系统自动建立出来与构造函数相关联的一个空的对象。能够由构造函数.prototype来访问到。
4.原型链:

  

 

这个我以前写过相关的文章,本身也有比较深刻的理解,因此这个也不在话下,噼里啪啦说了一大堆,也不知道面试官听得咋样。web

七、DOM事件的绑定的几种方式 面试

说了三种,而后说了一些冒泡,默认事件,以及DOM2,DOM3级的一些标准。算法

八、说一下你项目中用到的技术栈,以及以为得意和出色的点,以及让你头疼的点,怎么解决的。 编程

这个因人而异,开放性问题,主要考察平时项目的一些积累吧,这个我回答感受也比较ok。

九、有没有了解http2.0,websocket,https,说一下你的理解以及你所了解的特性。 

十、webpack的入口文件怎么配置,多个入口怎么分割啥的

这个本身就说了一下本身的理解,以及本身用node写的多入口怎么配置,而后面试官说不是多入口配置,而后我又说了一下本身的理解,而后这题就过了。

十一、我看到你的项目用到了Babel的一个插件:transform-runtime以及stage-2,你说一下他们的做用。 

这个我也还算比较了解,就说了一下ES的一些API,好比generator啥的默认不转换,只转换语法,须要这个来转换,而后说profill啥的,扯了一下stage-1,stage-2,stage-3,这个问题回答还算清楚。

十二、我看到你的webpack配置用到webpack.optimize.UglifyJsPlugin这个插件,有没有以为压缩速度很慢,有什么办法提高速度。 

这个我主要回答了一下,我以前也没怎么了解,一个想到是缓存原理,压缩只从新压缩改变的,还有就是减小冗余的代码,压缩只用于生产阶段,而后面试官问还有呢?我就说,还能够从硬件上提高,能够获得质的飞跃,好比换台I9处理器的电脑。。。。

1三、简历上看见你了解http协议。说一下200和304的理解和区别 

这个噼里啪啦说了一堆,协商缓存和强制缓存的区别,流程,还有一些细节,提到了expires,Cache-Control,If-none-match,Etag,last-Modified的匹配和特征,这一块以前有过比较详细的了解,因此仍是应答如流。

1四、DOM事件中target和currentTarget的区别 

这个没答上来。。。

1五、说一下你平时怎么解决跨域的。以及后续JSONP的原理和实现以及cors怎么设置。 

我就说了一下Jason和cors,而后问我JSONP的原理以及cors怎么设置,这一块本身也实践过,因此仍是对答如流的。

1六、说一下深拷贝的实现原理。 

这个也还好,就是考虑的细节不是很周全,先是说了一种JSON.stringify和JSON.parse的实现,以及这种实现的缺点,主要就是非标准JSOn格式没法拷贝以及兼容性问题,而后问了我有么有用过IE8的一个什么JSON框架,我也不记得是什么了,由于我压根没听过,而后说了一下尾递归实现深拷贝的原理,还问了我typeof null是啥,这个固然是Object。。。

1七、说一下项目中以为能够改进的地方以及作的很优秀的地方? 

这个也是因人而异,开放性问题,大体扯了一下本身的经历,也还OK。

1八、有没有本身写过webpack的loader,他的原理以及啥的,记得也不太清楚。 

这个我就说了一下,而后loader配置啥的,也还ok。

1九、有没有去研究webpack的一些原理和机制,怎么实现的。 

这个我简单说了一下我本身了解的,由于这一块我也没深刻去研究,因此说的应该比较浅。

20、babel把ES6转成ES5或者ES3之类的原理是什么,有没有去研究。 

这一块我说了一下本身的思路,大体也还OK,我也没去深刻研究怎么转换的,以前好像看过相似的文章,本身也只观察过转换以后的代码是啥样的,至于怎么转换的规则,真的没去深刻观察。

2一、git大型项目的团队合做,以及持续集成啥的。 

这里我就说了一下本身了解的git flow方面的东西,由于没有实战经验,因此我就选择性说明了这一块的不熟练,而后面试官也没细问。

2二、什么是函数柯里化?以及说一下JS的API有哪些应用到了函数柯里化的实现? 

这个我就说了一下函数柯里化一些了解,以及在函数式编程的应用,最后说了一下JS中bind函数和数组的reduce方法用到了函数柯里化。

2三、ES6的箭头函数this问题,以及拓展运算符。 

这一块主要是API和概念的问题,扯了一些规范以及严格模式下其余状况this只想问题。

2四、JS模块化Commonjs,UMD,CMD规范的了解,以及ES6的模块化跟其余几种的区别,以及出现的意义。 

这个也是说了一下本身的理解和认知,本身对模块化历史以及一些规范都有所涉猎,这一块也还凑合。

2五、说一下Vue实现双向数据绑定的原理,以及vue.js和react.js异同点,若是让你选框架,你怎么怎么权衡这两个框架,分析一下。 

主要是发布订阅的设计模式,还有就是ES5的Object.defineProperty的getter和setter机制,而后顺便扯了一下Angular的脏检测,以及alvon.js最早用到这种方式。而后扯了一下vue.js和react.js异同点,权衡框架选择,调研分析之类,噼里啪啦说了一大堆。

2六、我看你也写博客,说一下草稿的交互细节以及实现原理。 

这一款就按照本身用过简书或者掘金,SG这类草稿的体验,详细说了一下,这个开放性问题,说到点基本就OK。

2七、一个业务场景,面对产品不断迭代,以及需求的变更该怎么应对,具体技术方案实现。 

具体业务场景,我就不一一描述,Boss在白板上画了一个大体的模块图,而后作了一些需求描述。而后需求一层一层的改变,而后往下挖,主要是考察应对产品能力,以及对代码的可维护性和可拓展性这些考察,开放性问题,我以为还考察一些沟通交流方面的能力,由于有些地方面试官故意说得很含糊,反正就是一个综合能力,以及对产品的理解,中间谈到怎么实现,也问到了一些具体的点,记得问到的有一下几个。

① 怎么获取一个元素到视图顶部的距离。 

② getBoundingClientRect获取的top和offsetTop获取的top区别 

③事件委托

2八、好比说百度的一个服务不想让阿里使用,若是识别到是阿里的请求,而后跳转到404或者拒绝服务之类的? 

主要是考察http协议头Referer,而后怎么判断是阿里的ip或者啥的,我也不太清楚。

2九、二分查找的时间复杂度怎么求,是多少 

排序的还算清楚一点,查找真的不知所措,没回答上来,也没猜,意义不大,不会就是不会。

30、XSS是什么,攻击原理,怎么预防。 

这个很简单,跨站脚本攻击XSS(cross site scripting),攻击类型主要有两种:反射型和存储型,简单说了一下如何防护:

①转义 

②DOM解析白名单 

③第三方库 

④CSP 

本身对web安全这块系统学习过,前先后后大约了解了不少,对于XSS,CSRF,点击劫持,Cookie安全,HTTP窃听篡改,密码安全,SQL注入,社会工程学都有必定了解,因此这个天然也不在话下。

3一、线性顺序存储结构和链式存储结构有什么区别?以及优缺点。 

我是类比JS数组和对象来回答的,反正还算凑合吧,本身都数据结构这块多少仍是有些印象,因此入了前端,对数据结构和算法确实一直淡忘了。

3二、分析一下移动端日历,PC端日历以及桌面日历的一些不一样和须要注意的地方。 

这个我能想到的大体都说了一遍,不一样的场景交互和细节以及功能都有所误差,以及功能的侧重均可能不一样。

3三、白板写代码,用最简洁的代码实现数组去重。 

我写了两种实现方式:ES6实现: 

[...new Set([1,2,3,1,'a',1,'a'])] 

ES5实现: 

[1,2,3,1,'a',1,'a'].filter(function(ele,index,array){ return index===array.indexOf(ele)})

3四、怎么实现草稿,多终端同步,以及冲突问题? 

这个回答的不算好,原本也想到类比git的处理方式,可是说的时候往另一个方面说了,致使与面试官想要的结果不同。

 

以上内容为转载,仅用于学习参考。

相关文章
相关标签/搜索