@greenfavo
2016-10-27T06:40:04.000000Z
字数 3273
阅读 813
面试
http get和post方法区别
//get1,从服务器上请求资源2,请求可以被缓存3,请求可以保留在历史记录中4,会显示在浏览器地址栏中,不应在处理敏感数据时使用5,有长度限制,主要是URL长度的限制,最大2048kb//post1,向服务器提交要被处理的数据2,不能保留在历史记录中3,对数据的请求长度没有限制4,数据不会显示找URL中
http的一些缓存头
//缓存协商阶段Last-Modified/if-modified-sinceETag/If-None-Match//本地缓存阶段Cache-Control/Expires
浏览器判断缓存的完整过程
1,本地缓存阶段:先在本地查找该资源,如果有发现该资源,而且该资源还没有过期,就使用这一个资源,完全不会发送http请求到服务器;2,协商缓存阶段:如果在本地缓存找到对应的资源,但是不知道该资源是否过期或者已经过期,则发一个http请求到服务器,然后服务器判断这个请求,如果请求的资源在服务器上没有改动过,则返回304,让浏览器使用本地找到的那个资源;3,缓存失败阶段:当服务器发现请求的资源已经修改过,或者这是一个新的请求(在本来没有找到资源),服务器则返回该资源的数据,并且返回200, 当然这个是指找到资源的情况下,如果服务器上没有这个资源,则返回404。
有哪些缓存头可以返回304状态码
Last-Modified/if-modified-sinceETag/If-None-Match
响应头有哪些字段
Content-Length:8056Content-type:image/pngDate:Tue, 03 May 2016 18:06:30 GMTExpires:Wed, 03 May 2017 18:06:30 GMTLast-Modified:Thu, 21 Apr 2016 03:17:22 GMTCache-Control:public, max-age=31536000
css全称是什么?层叠是怎么体现的
层叠样式表,层叠体现在后定义的样式会覆盖前面的样式,优先级高的样式会覆盖优先级低的样式
css样式的优先级,选择器的优先级
//优先级递增的选择器列表1,通用选择器(*)2,元素(类型)选择器(p,h1)3,类选择器(.class)4,属性选择器(input[type='text'])5,伪类(:first-letter ::after)6,id选择器7,内联样式
设置了!important的样式为什么优先级最高
当 !important 规则被应用在一个样式声明中时,该样式声明会覆盖CSS中任何其他的声明, 无论它处在声明列表中的哪里
各个选择器混合使用时的优先级怎么判断
一个行内样式+1000,一个id+100,一个属性选择器/class类/伪类选择器+10,一个元素名/伪对象选择器+1。权重越大优先级越高
清除浮动的几种方法
//1.parent{overflow:hiddlen;}//2div::before{content:'';clear:both;}//3.parent{float:left}
BFC是什么?还有什么能触发BFC
BFC是块级格式上下文//哪些元素会生成BFCfloat(除了none)overflow(除了visible)display(table-cell/table-caption/inline-block)position为absolute或fixed
ajax readyState有几个值?分别代表什么意思?
0;//请求未初始化1;//服务器已建立连接2;//请求已接收3;//请求处理中4;//请求已完成且响应已就绪
字符串转成数字的几个方法?除了parseInt还有什么
parseInt('1');//1Number('1');//1+'1';//1
js数组的api有哪些?
concat()join()pop,pushreverse()shift,unshiftslice,splice
添加节点的方法?用原生js模拟jquery的after方法
function insertAfter(newElement,referenceElement) {var parent=referenceElement.parentNode;parent.insertBefore(newElement, referenceElement.nextSibling);}
合并2个数组的方法?除了concat,一行代码实现
var a1=[1,2,3],a2=[4,5,6];Array.prototype.push.apply(a1,a2);//方法1a1.push(...a2);//方法2 用es5的扩展参数
//gulp和grunt的异同点1,易于使用:采用代码优于配置策略,Gulp让简单的事情继续简单,复杂的任务变得可管理。2,高效:通过利用Node.js强大的流,不需要往磁盘写中间文件,可以更快地完成构建。3,高质量:Gulp严格的插件指导方针,确保插件简单并且按你期望的方式工作。易.于学习:通过把API降到最少,你能在很短的时间内学会Gulp。构建工作就像你设想的一样:是一系列流管道。
数组去重算法
function unique(arr) {var result=[];var hash={};arr.forEach( function(element, index) {var key=element+typeof element;if (hash[key]!==true) {result.push(element);hash[key]=true;}});return result;}
function prime () {var k=0,result=[];for(var n=2;n<=100;n==2?n++:(n+=2)){var found=1;for(var i=2;i<=Math.sqrt(n);i==2?i++ : (i+=2)){if (n%i===0) {found=0;//不是质数break;}}if (found) {result.push(n);}}return result;}