1 . 渐进增强 VS 优雅降级
渐进增强:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。
优雅降级:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。
2 . webpack ,grunt ,gulp 之间的区别
Grunt是一个任务管理器,能大大提高您运行前端开发工作流程。
gulp.js - 基于流的自动化构建工具。
Webpack 是当下最热门的前端资源模块化管理和打包工具。
3 . 什么是对象
对像就是一些属性和方法的集合
4 . 什么是闭包
能访问函数内部变量的函数
5 . for循环和for in循环有什么区别
前者 index变量是 number,后者是string;前者循环array,后者循环object枚举类型包括对象原型属性
6 . 前端跨域解决方法
后端允许前端跨域(cors),jsonp,设置代理(proxy)
7 .请求状态码
400--传参字段类型错误,401--授权失败,403--禁止访问,404--请求不存在; 301--永久重定向,302--临时重定向(post 大部分会转get),303--临时重定向(如果post转为强转get),304--网址未修改,307--临时重定向(post 不会转get);500--服务器内部错误,501--没有开放的请求错误,502--请求的网关错误,503--服务器不可用,504--网关超时,505--http请求版本不受支持
8 .node.nodetype== 1 代表element ,2代表属性,3代表文本节点,8代表注释
9 .循环页面节点 var el = document.querySelector("#id")
var child = el.firstChild;
var fragment = document.createDocumentFragment();
var node=null;
while(child ){
fragment.appendChild(child);
child = el.firstChild;
}
10 .正则表达式,reg
var reg = /\{\{,*\}\}/ig;
reg.test(string), string.match(reg) , reg.exec(string) // /g 全局 /i 不分大小写 ,/m 表示多行匹配 ;/s表示特殊字符圆点 . 中包含换行符;/u表示最近的一个字符串,不重复;
; test ; match; exec(可以根据“()”分组) 等方法写法不同; ?---懒惰匹配
11 在浏览器中输入网址后回车发生了哪些事情
-
DNS解析
-
TCP连接(三次握手)
-
发送HTTP请求
-
服务器处理请求并返回HTTP报文
-
浏览器解析渲染页面
-
连接结束
12 怎么获取服务器最新的时间
根据 XMLHtmlRequest readyState 的值来区分: 0 表示创建XMLHtmlRequest对像未来初始化; 1 表示调用了opend方法,准备发送数据; 2 表示调用了send方法,开始发送请求了,并获得服务器响应头信息; 3 表示获得头部响应信并正在接收body数据; 4 表示接收数据完成;
所在当状态为2 时就可以获取 响应头部 date 的时间;