最近开始了几次面试,虽然还不知道结果如何,但是还是要记录下来进行一个总结,同样也希望对正在准备面实习生的童鞋们有所帮助~
- JavaScript :
- addEventListener最后一个参数是做什么用的 答:规定事件是冒泡还是捕获。false是冒泡,true是捕获
- 什么是冒泡,什么是捕获 答:当一个元素触发了一个事件之后就会像上层传递直至body,document。捕获是从最不具体的传至最具体的
- 所有的事件都可以冒泡么 答:不是,blur focus change不可冒泡
- 怎么取消事件冒泡 答:eve.preventDefault(阻止事件默认行为)(这都没答上来,我一定是个逗比)
- 怎么判断是不是数组 答:a instanceof Array Array.isArray(a) 他问我还有么~ 所以我说试一下Array的内置函数,可以使用是Array不可以则不是,其实还有 Object.prototype.toString === '[object Array]'
- 怎么把一个类数组对象转化为数组 答:Array.prototype.slice.call();
- 讲一下继承:巴拉巴拉的讲了一大堆(因为他看了我的博客)
- CSS:
- float高度塌陷解决方案: clearfix:after{clear:both;content:".";height:0;display:block;visibility:hidden;}(给自己挖了个坑after是伪元素不是伪类,我说错了~)
- line-height像素单位和百分比的单位的计算方法: length 设置固定的行间距。单位em,px,pt等等。百分比% ,基于当前字体尺寸的百分比行间距。(我觉得我答得是对的,但是他有重复了一遍:我说的是line-height)
- 一个ul里有若干个li,想要每个li都有一个border-bottom,最后一个li不想要boder-bottom要怎么做:(ul:last-child{border-bottom:none;}或者给最后一个li加一个class选择器设置border:none;(他说还有,查了一下什么加载jQuery可之类的~)
- css 选择器过长怎么判断他的优先级:行内样式1000 -- id100 -- 类、伪类、属性选择器10 -- 类型选择器、伪元素选择器1 通过相加计算大的优先级高,值相等的话后声明的优先级高。
- 算法(一个都没答上来):
- 优先队列
- 堆
- 快速排序
-
- 项目
- css3翻书是怎么做的呀? 巴拉巴拉讲了一堆
- 你这个翻页有个bug呀,什么原因怎么改呀? z-index的问题,怎么改布吉岛~
- canvas绘图怎么做的呀? 巴拉巴拉讲了一堆
- 你这个绘制有bug呀,什么原因怎么改呀? 滚动条的问题,怎么改又布吉岛。。。(加上滚动条的距离,面试官告诉我的~)
- 版本控制
- 了解版本控制器么? 了解一些github
- 基本操作会么? 我都用的windows的图形界面进行操作的(面试官心中可能有一万只草泥马在奔腾....)
- github的工作原理是什么呀? 我把我的代码上传到github的仓库上,然后别人可以下载进行代码添加然后上传更新仓库,我可以再下载更新过的继续进行添加修改
- 那如果你们两个修改同一份代码发生冲突怎么办? 我知道的方法只有回滚,就是和队友交流看谁的代码更重要,然后进行一个回滚操作。
- 只能这样么,必须有一个人牺牲么? 我了解到github的功能其实非常强大,所以肯定有更好的方法吗,只是我现在对github的使用仅限于自己代码的存储以及一些小的修改,所以并不了解更好的方法。。。。
- JavaScript
- Array都有哪些方法呀? join slice splice reverse sort foreach every等迭代方法 暂时只能想起这些
- sort方法工作原理是什么样的? 我不知道怎么讲他的工作原理,只知道他在排序上的问题巴拉巴拉的讲了一下。。。
- 那如果想要sort排序数字怎么办? function(a,b){return b-a;}这样是降序
- String有哪些方法呀? concat charAt slice substr substring 等等(其实现在觉得应该加一句说string是基本数据类型,没有方法,string的方法是String构造函数创建的引用类型的方法~)
- 那replace方法怎么用的呀? 我很认真的答成了splice的用法。。。。(两个参数 1.RegExp对象或者是字符串2.字符串或者函数 然后替换可以用正则进行全局替换。。。。)
- css
- 一个div怎么垂直居中呀? 饿了么说过了~
- css3你常用的属性有什么呀? 动画的transform transmation border-radious box-sizing box-shadow
- 其他
- 你常用的代码编写工具是什么? sublime text
- 你要修改很多相同的地方怎么办? 选中一个 按Ctrl+D 选取多个 然后一起改
- photoshop怎么样? 可以进行简单的psd页面图的ps 不会人物风景的美化
- 想要导出一个文件提及比较小的png怎么做 存储为web所用格式。。。(应该不对~)
- 项目
-
- 项目(这里聊了很久)
- 给我介绍一下你都做过哪些项目吧? 巴拉巴拉一堆没有什么特定答案~
- 你是怎么进行团队项目的合作呢? 巴拉巴拉一堆没有什么特定答案~
- 你现在在学些什么呀? Linux下Qt开发~~巴拉巴拉~
- 做前端有用不到C++,你学他有什么用呀? 我不只是一个写前端的,我还是一个程序员,C和C++是这些语言的基础,所以巴拉巴拉~
- 你最满意的C++程序讲一下? Qt呀,类呀~什么的~
- CSS
- 很长一段话要进行截取,超过之后是三个点怎么做? 不考虑兼容的话CSS3有 text-overflow:ellipsis 然后或者overfloww:hidden 再在边框前侧加入一个三个点的span
或者用伪元素:after{content:"..."}之类的吧 - 时间太久不记得了~~~
- 很长一段话要进行截取,超过之后是三个点怎么做? 不考虑兼容的话CSS3有 text-overflow:ellipsis 然后或者overfloww:hidden 再在边框前侧加入一个三个点的span
- JavaScript
- 鼠标滑过一个元素出现一个弹出层 就dom 0级来举例子的话是 onmouseover dispaly:block
- 鼠标滑的快不让他出现怎么办 设置一个setTimeout 当鼠标在上面停留的时间小于设定的时间的话他还没有出来事件就被取消掉了
- 那setTimeout应该设置多久的时间呢? 这个我不知道有什么约定俗成的时间设置,如果是我的话,应该回去试一下,看那个时间合适
- 现在我想要这个元素在页面下方是弹出层在上方显示,元素在上方时弹出层在下方显示? 判断元素距离页面底端的位置,位置大于弹出层的高度的话就在下方弹出,否则在上方弹出
- 如果我现在想把他做成一个工具给别人用要怎么做? 呃~首先使用模块化,注意不要和其他的方法什么的有冲突,然后子啊里面设置方法出入所需的参数,比如那个元素,什么事件,弹出层的大小等等
- 那想做一个好的工具参数肯定很多,你怎么能方便别人使用呢?毕竟参数这么多别人会记不住的 呃~我可能会设置成一个对象,传入对象的属性,这样就方便记住了。
- 其他
- 你觉得淘宝首页有哪些技术优势? 页面很大,要承载的东西也很多,但是可以让用户清晰明了的找到想要找的东西证明布局做的非常好,然后里面包括图片轮播呀个中点击事件呀什么的事件也很多,所以避免事件冲突也很腻害~
- 那你觉的你用多久可以写出淘宝首页? 呃~一个星期吧(这个可真的不知道什么样的答案合适)
- 你为什么想来淘宝技术部? 因为技术牛,而且有很多大牛在这个团队里,如果我有机会的成为其中一员的话就业可以学到更多的东西啦~
- 你觉得你有什么优势可以来淘宝技术部? 嘿嘿,就不告诉你我是怎么答得~~
- 项目(这里聊了很久)
- position 定位
- dom操作元素
- 两列布局
- inline-block空隙怎么解决
- 事件代理
- 什么是冒泡什么是捕获
- BFC,haslayout是什么,怎么触发
- C++
- jQuery取到的元素和原生Js取到的元素有什么区别
- CSS
- 如何平铺一张背景图? css方法:设置一张图片 {position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: -1;}
js方法: 判断浏览器高度,设置图片的高度 - 如果让图片按比例放大缩小呢? 用Js来判断宽高,然后按比例放大(面试官说屏幕壁板都是横屏,所以width设置为100%就可以了)
- Doctype的作用
- 渐进增强 优雅降级
- css hack
- 条件注释
- dispaly的值
- css3动画的性能优化你知道什么? 我只答了最好不要使用all
- 什么是语义化
- html5 语义化的标签
- 如何平铺一张背景图? css方法:设置一张图片 {position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: -1;}
- JavaScript
- 响应式 我只答了@media
- setTimeout 和setInterval的区别
- setTimeout时间设为0是否立即执行,为什么?
- 构造函数的运行机制
- this的绑定
- call()和apply()的区别
- Js继承有哪些?原型继承是什么样的
- 解释一下模块化,举例模块化的方法
- GET和POST的区别
- 函数声明和函数字面量的区别
- jQuery的联级有什么好处
- 其他
- http状态码都知道那些
- 数组去重
- 怎么构造一棵树
- 十进制数判断有多少位二进制码
- 性能优化了解多少
- JavaScript :
后面的问题答案基本网上都有,偷个懒先不写了。如果还有后续的话我会继续补充的~同样附上我的github地址,里面是我的一些项目以及自己的简历(不要玩儿坏呦~)https://xiaoruo.github.io/