内容来自牛客网面经
一面:
事件类型、绑定方式;
项目介绍;
项目中实现的某个组件的实现方式;
响应式布局的方式;
二面:
闭包是什么;
js中的对象,对象的继承;
我的项目中模态框表单的实现方式,如何调用的(这个其实项目中并没有用的那么高级,但是我给出了现在的思考和实现方式,临场发挥��);
跨域了解多少(讲了CORS、JSONP、postMessage啥的);
css盒子模型(这个基本都会问到);
浏览器内核有哪些;
浏览器中从输入url到显示页面都发生了什么(经典题);
浏览器的渲染方式;
http协议;
一面:
自我介绍,挑一个项目介绍
js对象;
一个对象的实例,如何统计被几次调用过,分别具体被哪些函数调用过,可以有哪些方法;
实现私有变量(这里当时还没看到相关部分,只能想到用属性的setter、getter来做。。。��面试官各种启发呀。。);
css垂直水平居中有哪些方法;
css清除浮动的原理,clear:both和clear:left的区别;
行内元素和块级元素的区别;
二面:
css盒子模型;
加载性能优化的方法;
http缓存控制;
浏览器如何匹配某个选择器;
websocket相关,轮询,polling;
ws和wss的区别;
两列布局;
一面:
盒子模型;
border的设置,border的上下左右具体范围;
css垂直水平居中的方法,flex布局的具体实现;
两列布局的方式;
项目中做的一个导航条点击平滑滚动到对应位置的效果,介绍它的实现方式;
闭包,块级作用域;
https的原理,加密方式,怎么加密的(这个真不太会了。。。晕);
二面:
上来就写个Animal类,有个Cat类继承它,要求新建一个Cat的实例,可以调用catch方法输出自己的名字“大白的猫”;
闭包;
js基本数据类型,[]===[]吗;
写个方法判断一个变量的类型;
事件类型,事件绑定方式;
跨域,在不支持json格式的浏览器中,写方法能够将json字符串与对象互相转换;
session和cookie的区别;
简历上写了react,于是给了个场景,A、B、C三个大组件,点击A中的每个小组件Ci,能在B中显示一个form,在form的input中写入文字,可以实时显示在C中,点击form里的button,可以改变Ci的颜色;
用过LESS,具体用到了什么功能;
响应式布局;
es6中字符串模版怎么用;
用bfs实现前序遍历;
三列布局;
盒子模型;
二面:
项目介绍;
做一些js题(考察this,作用域,变量声明,引用类型);
三面:
感觉自己优势在哪里;
前端框架了解哪些,vue和react对比;
对自己有何职业规划;
感觉自己需要如何提高;
算法题,给千万量级的珠子,共上百种颜色,围成一个圈,求连续的包含所有颜色的最短子串的长度,并分析时间复杂度;
介绍MVVM模式;
grunt用过哪些功能;
介绍某个项目;
如果要你设计一个组件,你会如何设计(这个不确定是不是百度问的了);
哪方面学的比较好,哪方面比较薄弱(我直接坦白说算法数据结构等计算机基础可能相对更好点,但是js不太深入,于是后面他就懂了,全问的算法��);
实现洗牌算法;
实现一个列表中每个li里有一个input和button,点击button删除对应的li节点;
最短路算法(dijkstra),有负环怎么办(spfa);
js中的闭包概念?滥用闭包有什么副作用?
- js里的基本数据类型?有几种方式可以判断数据类型?
- jQuery源码有看过吗?请说出jQuery内部判断数据类型的巧妙方式。
- 字符串“1”加上数字1的结果是? (也许是看我前一题答不上来,沉默半天突然问了这个……这是在动态调整难度?)
- ajax的内部原理?
- 你都用过哪些前端框架?为什么选择这个框架?
- 你在项目中创新性地解决了哪些难题?
你在项目中都有哪些性能优化的经验?
jQuery源码有看过吗?请说出你印象最深刻部分的原理。 (还好我一面过后恶补了这方面内容……)
- 你对目前流行的前端框架都有什么了解,有没有应用经验? (一面时面试官推荐我多了解一下 Vue.js ,我回去也恶补了,二面时便说了一些对Vue.js的理解,二面面试官也说Vue.js是他们常用的,这个信息很重要)
- 你是从哪些途径学习前端新知识的? (我说是看文档和大牛博客,她又问我“你能说出一些知名博主的名字吗?”,看来平时也是要多留心的)
你在项目中创新性地解决了哪些难题?
闭包的作用,用法。
ES6有用过哪些特性?
给了段代码,问输出什么。主要是考作用域链和this
实现左定宽右撑满的布局。盒子模型。要使盒子表现与IE一致该如何?
事件机制,如何绑定事件处理函数。
js异步模式如何实现?
如何获取某个DOM节点,节点遍历方式?
用LESS如何给某些属性加浏览器前缀?
. js类的继承方式,并实现。
- 要实现函数内每隔5秒调用自己这个函数,100次以后停止,怎么办。
第一个问题是我最不想被问到的问题,一紧张全忘光乱套了,被鄙视;第二个问题其实静下心来想应该是可以做好的,但是由于第一题的影响,哎还是乱了阵脚。可能面试官也觉得我很low吧。。。= =。。但是可能看我等了这么久,还是放我去hr面了。
我问的问题:
为什么不问我别的知识点?比如css之类的?他说css和js是前端的两个大头,然后貌似说css他也不太熟。。。??(可能我听差了吧。。��)
团队中尤其是新人,一般都做些什么工作?
用什么技术框架?
首先介绍下做过的自我感觉最好的项目
我就只能拿枪弹柜这个说了,只是因为我全程都参与这个项目,最为了解,但是其实说实话它虽然体量还算庞大,用到了好些个相关技术,但是却不深,感觉并没有太大说服力。面试官也没有太多地深入问。所以感觉最好要有一个自己从头开发的有难度的小项目就好了,若是在github上有star或者fork肯定更加分~
css的margin重叠问题
说实话,之前并没有系统地了解过,只有个大概的映像,答的不好,详细答案在这里。
javascript的事件绑定
性能优化问题
这个不太了解,没说
安全性问题
这个不太了解,没说
如果一个页面打开了之后空白,你会如何定位问题?如果不是网络、服务器的问题,就是前端问题,该如何定位?
平常用什么浏览器?怎么调试的?chrome开发者工具平常都用到了什么?关于性能的调试用到了啥?
我说主要是chrome;用chrome的开发者工具;除了性能,我其它的基本都有了��。
关于HTTP,cache怎么控制的?如果允许缓存,一个页面访问缓存的流程是怎样的?
我说用cache-control,pragma;
关于项目:php用的什么版本?nodejs的websocket是自己实现的还是用的组件?如何划分模块?开发环境是windows还是linux?
这个基本上就照实说了。
用了什么前端构建工具?
grunt,介绍了用过什么功能,是否自己搭建。
js中setTimeout的函数执行时间?触发了setTimeout后会立即执行吗?
关于前端性能、安全性问题?提到了CSIF
H5的移动端和PC端页面开发有什么区别?
window.onload 是什么时候触发的?
啊这个问题前两天才看过T^T…然后不确定,本来想说是在完全加载完成后执行的,结果最后还是答了个错的答案。。QAQ。。。window.onload与document.ready的区别.
jquery的入口函数写在哪里?为什么?
我说写在页面的body结束前,因为这样页面都会加载完再执行js代码。应该少说了个 页面的加载不会被js代码阻塞 吧。