乐趣区

关于javascript:两年经验面试阿里前端开发岗已拿offer这些知识点该放出来了

个别阿里社招都是招 3 - 5 年的 P6+ 工程师,但在某 boss 上有个阿里的技术专家私聊了我要我简历,我说我只有两年经验,然而这 boss 说,没关系,他喜爱根底好的,让我试一试,于是我也抱着试一试的心态发了简历。

简历发过来之后,boss 就给我打了电话,让我简略的介绍一下本人,我就噼里啪啦说了一些,还说了一些题外话。而后 boss 就开始问我问题。

因为面了四轮,所以最开始的面试记忆有点含糊了。

电话面试

1. 说一下你理解 CSS 盒模型。
2. 说一下 box-sizing 的利用场景。
3. 说一下你理解的弹性 FLEX 布局.
4. 说一下一个未知宽高元素怎么上下左右垂直居中。
5. 说一下原型链,对象,构造函数之间的一些分割。
6.DOM 事件的绑定的几种形式
7. 说一下你我的项目中用到的技术栈,以及感觉得意和杰出的点,以及让你头疼的点,怎么解决的。
8. 有没有理解 http2.0,websocket,https,说一下你的了解以及你所理解的个性。

第一轮电面大概面了 50 分钟,就记起来这么多,还有一些细节问题可能淡忘了,总体来说,面的都是以根底为主,而后 boss 说把我简历举荐给外部,进行正式的社招流程。

一轮技术面

这次就间接省略自我介绍了。

1.webpack 的入口文件怎么配置,多个入口怎么宰割啥的,我也没太听分明。
2. 我看到你的我的项目用到了 Babel 的一个插件:transform-runtime 以及 stage-2,你说一下他们的作用。
3. 我看到你的 webpack 配置用到 webpack.optimize.UglifyJsPlugin 这个插件,有没有感觉压缩速度很慢,有什么方法晋升速度。
4. 简历上看见你理解 http 协定。说一下 200 和 304 的了解和区别
5.DOM 事件中 target 和 currentTarget 的区别
6. 说一下你平时怎么解决跨域的。以及后续 JSONP 的原理和实现以及 cors 怎么设置。
7. 说一下深拷贝的实现原理。
8. 说一下我的项目中感觉能够改良的中央以及做的很优良的中央?

最初问了有什么须要问的中央,面试到这里根本就完结了,大概面了一个多钟头,还是蛮累的。总体来说,答复的广度和深度以及细节都还算 OK,感觉这轮面试根本没什么悬念。

二轮技术面

过了几天,接到阿里另一个面试官的电话,上一轮面试通过了,这次是二轮技术面,说预计一个钟头。这次仍然跳过自我介绍之类的,直奔主题。

1. 有没有本人写过 webpack 的 loader, 他的原理以及啥的,记得也不太分明。
2. 有没有去钻研 webpack 的一些原理和机制,怎么实现的。
3.babel 把 ES6 转成 ES5 或者 ES3 之类的原理是什么,有没有去钻研。
4.git 大型项目的团队单干,以及继续集成啥的。
5. 什么是函数柯里化?以及说一下 JS 的 API 有哪些利用到了函数柯里化的实现?
6.ES6 的箭头函数 this 问题,以及拓展运算符。
7.JS 模块化 Commonjs,UMD,CMD 标准的理解,以及 ES6 的模块化跟其余几种的区别,以及呈现的意义。
8. 说一下 Vue 实现双向数据绑定的原理,以及 vue.js 和 react.js 异同点,如果让你选框架,你怎么怎么衡量这两个框架,剖析一下。
9. 我看你也写博客,说一下草稿的交互细节以及实现原理。

最初面试官问我有什么想问的吗,面试到这里根本就完结了,差不多面了一个小时。

三轮技术面

上一轮施展感觉没前两轮施展好,所以还是有点不自信的,没想到第三天后,就来电话了,告诉我去阿里园区面试。

第一个面试官

1. 先自我介绍一下,说一下我的项目的技术栈,以及我的项目中遇到的一些问题啥的。
2. 一个业务场景,面对产品一直迭代,以及需要的变动该怎么应答,具体技术计划实现。
具体业务场景,我就不一一形容,Boss 在白板上画了一个大抵的模块图,而后做了一些需要形容。
而后需要一层一层的扭转,而后往下挖,次要是考查应答产品能力,以及对代码的可维护性和可拓展性这些考查,开放性问题,我感觉还考查一些沟通交流方面的能力,因为有些中央面试官成心说得很含混,反正就是一个综合能力,以及对产品的了解,两头谈到怎么实现,也问到了一些具体的点,记得问到的有一下几个。

① 怎么获取一个元素到视图顶部的间隔。
② getBoundingClientRect 获取的 top 和 offsetTop 获取的 top 区别
③事件委托

第二个面试官

1. 业务场景:比如说百度的一个服务不想让阿里应用,如果辨认到是阿里的申请,而后跳转到 404 或者拒绝服务之类的?
2. 二分查找的工夫复杂度怎么求,是多少
3.XSS 是什么,攻打原理,怎么预防。
4. 线性顺序存储构造和链式存储构造有什么区别?以及优缺点。
5. 剖析一下挪动端日历,PC 端日历以及桌面日历的一些不同和须要留神的中央。
6. 白板写代码,用最简洁的代码实现数组去重。
7. 怎么实现草稿,多终端同步,以及抵触问题?

小结

一面的时候其实我本人感觉答得不是特地好,过后面下来感觉要凉了,很侥幸的时候还是给我过了。

我筹备面试之前对我本人的要求就是,我会的尽量不会很快就被问倒,所以我重点温习了我善于的常识,并且到网上刷了很多阿里面试题,做了一个整顿,当初分享给大家,算是一个感恩回馈吧。

React
  • REACT 全家桶
  • 介绍 Redux,次要解决什么问题?数据流程是怎么样的?多个组件应用雷同状态如何进行治理?
  • React-Redux 到 react 组件的连贯过
  • Redux 中间件是什么货色,承受几个参数
  • redux 申请中间件如何解决并发
  • Redux 中异步的申请怎么解决
  • 如何配置 React-Router
  • react-router 怎么实现路由切换?BrowserRouter as Router

……

HTML 和 CSS
  • 你做的页面在哪些流览器测试过?这些浏览器的内核别离是什么?
  • 每个 HTML 文件里结尾都有个很重要的货色,Doctype,晓得这是干什么的吗?
  • Quirks 模式是什么?它和 Standards 模式有什么区别
  • div+css 的布局较 table 布局有什么长处?
  • img 的 alt 与 title 有何异同?strong 与 em 的异同?
  • 你能形容一下渐进加强和优雅降级之间的不同吗?
  • 为什么利用多个域名来存储网站资源会更无效?
  • 请谈一下你对网页规范和规范制订机构重要性的了解。
  • 请形容一下 cookies,sessionStorage 和 localStorage 的区别?

JavaScript
  • JQuery 一个对象能够同时绑定多个事件,这是如何实现的?
  • 晓得什么是 webkit 么? 晓得怎么用浏览器的各种工具来调试和 debug 代码么?
  • 如何测试前端代码么? 晓得 BDD, TDD, Unit Test 么? 晓得怎么测试你的前端工程么 (mocha, sinon, jasmin, qUnit..)?
  • 前端 templating(Mustache, underscore, handlebars) 是干嘛的, 怎么用?
  • 简述一下 Handlebars 的根本用法?
  • 简述一下 Handlerbars 的对模板的根本解决流程,如何编译的?如何缓存的?
  • 用 js 实现千位分隔符?
  • 检测浏览器版本版本有哪些形式?
  • 咱们给一个 dom 同时绑定两个点击事件,一个用捕捉,一个用冒泡,你来说下会执行几次事件,而后会先执行冒泡还是捕捉
  • 实现一个函数 clone,能够对 JavaScript 中的 5 种次要的数据类型(包含 Number、String、Object、Array、Boolean)进行值复制
  • 如何打消一个数组外面反复的元素?

HTML5 和 CSS3
  • CSS3 有哪些新个性?
  • html5 有哪些新个性、移除了那些元素?如何解决 HTML5 新标签的浏览器兼容问题?
  • 如何辨别 HTML 和 HTML5?
  • 本地存储(Local Storage)和 cookies(贮存在用户本地终端上的数据)之间的区别是什么?
  • 如何实现浏览器内多个标签页之间的通信?
  • 你如何对网站的文件和资源进行优化?
  • 什么是响应式设计?
  • 新的 HTML5 文档类型和字符集是?
  • HTML5 Canvas 元素有什么用?
  • HTML5 存储类型有什么区别?

退出移动版