以下问题是我在面试过程中逐步整理的,仅供参考(会不断更新)
基础知识:
JS:
- 你们常用的命名规范是什么?
- 字符串的操作,截取,分割?
- 节点的类型有哪些,如何对节点进行查找,删除,克隆?
- 你用过的属性操作的方法有哪些?
- 你是如何做图片延时加载的效果?
- 如何阻止事件冒泡、如何阻止元素默认行为
- 什么是冒泡和捕获、什么是事件委托和代理?
- 作用域、闭包、局部变量、全局变量各个概念指的是什么?
- 如何做一个放大镜效果?
- 如何做谈入弹出效果?缓冲运动效果?如何实现无缝运动?
- 你理解的模块化有哪些?cmd,amd,commonjs.
- 什么是B/S架构?什么是同源策略?Jsonp的原理?onreadystatechange的使用?iframe如何实现跨域?
- 是否设计过通用化组件?如果让你设计一个Dialog(弹出层)/Slider(图片轮播)等组件你会怎么设计,提供什么接口?你预估会碰到什么问题,你如何调试?
- 你熟悉的Backbone/Vue/Angular/Sea/Require有什么有优缺点?针对那些缺点,你有没有想过解决方案?
- 你如何理解MVC/MV*的?
- 如果让你设计一个登录页,按照MVC/MV*你会怎么去组织各个层?
Html:
- html元素的分类有哪些?结构元素,列表元素,文本格式元素,表单元素,表格元素
- 你是如何理解渐进增强的?
Css:
- em rem px三者直接的区别?
- 如何让选择的文本颜色变色?
- max-width和max-device-width区别?
- @media,@supports和@document分别用法是什么?
- box-sizing属性中border-box和content-box的区别?
工程化 :
- gulp的原理何使用,如何使用gulp进行打包?
类库:
- 如何选择合适的jQuery版本?
- jQuery对象和Dom对象如何相互转换?
- jQuery动画的实现原理?整个实现是否有问题,有需要优化的地方?
- jQuery代码优化的基本原则是什么?
- jQuery的异步编程Promise具体用法?
浏览器:
- 一个页面从输入Url到页面加载完的过程中都发生了什么事情?
性能:
- 谈一下你所知道的页面性能优化方法?这些优化方法背后的原理是什么?除了这些已经成熟方案,你还了解哪些?
- 如何去分析一个页面的性能?
个人能力:
- 你最擅长的技术是什么?你感觉你的技术能到达什么水平?你认为最高级别应该是什么样的?
- 你做过最满意的项目是什么?
- 项目的背景是什么?为什么要做这个项目?项目最终达到什么效果?
- 你在项目中处于什么角色,起到了什么方面的作用?
- 你在项目中碰到了什么问题,怎么解决的?
- 如果再做这个项目,你会在哪些方面进行改善?
- 你没如何和设计师,产品经理,测试人员进行沟通?如何开展工作?如何处理碰到的问题?
- 描述一个你遇到的技术问题,你是如何处理的?有没有碰到什么非常奇葩的问题,而且百度不到,完全自己想到解决方案的?
- 除了前端你还了解什么其他技术?你对这些技术掌握的怎么样?
- 你最近在学什么?接下来的半年你打算学习什么?你平时如何去学习了解新的技术?
- 之前做的项目,有什么是你主动推动了什么?
高级技术:
- 你对的数据结构,编译原理有何了解?你理解哈夫曼编码,或者贪心算法么?
- Get和Post的本质区别是什么? 参考Http的Rfc解释