基础题
1、html5的客户端存储数据的方法(cookie、localStorage、sessionStorage)的区别?
2、HTTP和HTTPS的区别?
3、HTTP状态码?
4、前端跨域问题的解决方法?
5、前端的安全问题有哪些?
6、JavaScript的原型?什么是JavaScript的原型链?
7、js的继承方式有哪些?
8、什么是闭包?写一个js的闭包例子?
9、谈谈JavaScript中对this的理解和用法?
10、apply()和call()的区别?
10、什么是事件委托?怎么使用?有什么好处?
11、使用jquery有什么优化的方法?
12、前端的性能优化有什么方法?
13、什么是ajax?如何创建一个ajax?
14、异步和同步的区别?
15、给元素添加事件的方法有哪些方法?
16、怎么理解javascript的局部变量和全局变量?
17、Null和Undefined的区别?
18、jq怎么获取URL参数?
19、谈谈前端MVC和MVVM的原理
20、图片预加载和懒加载分别是怎么实现的?
22、怎么样防止表单的重复提交?
23、JS有什么事件机制?怎么实现?
24、谈谈对模块化的理解?AMD和CMD的区别?
模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题进行系统性的分解以之处理。
模块化是一种处理复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式
AMD:Asynchronous Modules Definition ,意思就是异步模块定义,它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的依法,都定义在一个回调函数中,等加载完成后,这个回调函数才会运行。合适用在浏览器端;
语法规范:require([module],callback);
CMD:Common Module Definition 就是通用模块定义,该规范主要适用于服务端,因为所有的模块都放在本地硬盘,可以同步加载完成,等待的时间就是硬盘的读取时间;不适合用在浏览器环境,因为所有的模块都在服务器,等待时间取决于网速的快慢,如果等待时间过长,浏览器会处于一种假死的状态;
语法规范:
var math = require('math'); //先加载需要用到的模块
math.add(3,4) ; // 然后调用模块提供的方法
25、jquery中bind(),live(),on()有什么区别?
26、高清屏下面背景图片变模糊,怎么实现图片适配?
27、px、em、rem的区别?
28、怎么实现数组去重?
29、页面引入样式时,link和@import有什么区别?
30、谈谈你对浏览器内核的理解?常见浏览器内核有哪些?
31、简述一下你对HTML语义化的理解?
32、html5的form表单如何关闭掉自动完成功能?
33、谈谈你在开发过程中遇到的浏览器兼容问题?
34、什么是css盒模型?
35、position的值relative和absolute分别定位的原点是什么?
36、css的权重优先级怎么计算?
37、谈谈对浮动的理解?怎么清除浮动?设置元素浮动后,该元素的display的值变成什么?
38、CSS优化,提高性能的方式有哪些?
39、什么是响应式?响应式设计的原理是什么?如何兼容低版本的IE?
40、什么渐进增强和优雅降级?
41、一个页面从输入URL到浏览器完全显示,这个过程都发生了什么?(越详细越好)
42、zepto手机端的“点透”问题如何解决?
43、JavaScript的数据类型有哪些?
44、谈谈你是怎么开发移动端页面的?
45、写一个验证手机号的正则表达式?
46、谈谈对flexbox(弹性盒子)的理解?
47、jquery怎么选择一个页面里面的所有选中的多选框?
48、nodejs的模块管理是属于什么规范?(CMD:nodejs是由模块组成,采用common.js的模块规范)
49、谈谈对web标准的理解?
框架相关
VUE框架:
1、组件的通讯方式:父组件向子组件;子组件向父组件;子组件和子组件
2、组件的生命周期(在一个生命周期中都进行了那些步骤)
3、生命周期钩子函数主要有哪些?
react框架:
webpack:
gulp:
待续....