面试答案知多少
1.<!DOCTYPE html>中DOCTYPE 有什么作用,去掉会有什么影响?
答:作用:声明该文档是什么类型的:html类型;
去掉:一般高版本浏览器默认是html5类型,所以去掉也没事,不过考虑到低版本浏览器的兼容,建议规范的书写,还是声明一下的好。
2.HTML行内元素有哪些,块级元素有哪些?画出css盒模型。
答:行内元素:span、a、img、input、strong、i、textarea;
块级元素:div、p、h1-h6、ul、li、form、hr、ol、tr;
盒子模型:外边距(margin)、边框(border)、内边距(padding)、内容(content);
俯视这个盒子,它有上下左右四条边,所以每个属性都包括四个部分:上下左右;这四部分可同时设置,也可分别设置;内边距可以理解为盒子里装的东西和边框的距离,而边框有厚薄和颜色之分,内容就是盒子中间装的东西,外边距就是边框外面自动留出的一段空白。
3.css选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和!important哪个优先级高?
答:css选择符:(id:#)、(class:.)、(标签)、(*);伪类选择器还有很多,既然问的是选择符,这里就不写了。
属性可继承:font-size、background、width、color(a标签特殊)<下面的做参考>
所有元素可继承:visibility和cursor。
内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction。
终端块状元素可继承:text-indent和text-align。
列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。
优先级算法:按照10进制算法:important=正无穷,id=100,class=10,元素(标签)=5,*=1;
内联和!important:css法则里!important永远是最高的。
4.清除浮动的几种方法,各自的优缺点?
答:a.父级元素定义 height :
原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题。
优点:简单、代码少、容易掌握
缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题
建议:不推荐使用,只建议高度固定的布局时使用
b.结尾处加空div标签 clear:both :
原理:添加一个空div,利用css提高的clear:both清除浮动,让父级div能自动获取到高度
优点:简单、代码少、浏览器支持好、不容易出现怪问题
缺点:如果页面浮动布局多,就要增加很多空div,增加代码量,维护也不方便。
建议:不推荐使用,但此方法是以前主要使用的一种清除浮动方法
c.父级元素定义 伪类:after 和 zoom
原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题
优点:浏览器支持好、不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)
缺点:代码多、不少初学者不理解原理,要两句代码结合使用才能让主流浏览器都支持。
建议:推荐使用,建议定义公共类,以减少CSS代码。
5.HTML5存储类型有哪些?
答:1、本地存储localstorage
<扩展>存储方式:
以键值对(Key-Value)的方式存储,永久存储,永不失效,除非手动删除。
大小:每个域名5M
支持情况:
注意:IE9 localStorage不支持本地文件,需要将项目署到服务器,才可以支持!
检测方法:
if(window.localStorage){
alert('This browser supports localStorage');
}else{
alert('This browser does NOT support localStorage');
}
常用的API:
getItem //取记录
setIten//设置记录
removeItem//移除记录
key//取key所对应的值
clear//清除记录
存储的内容:
数组,图片,json,样式,脚本。。。(只要是能序列化成字符串的内容都可以存储)
2、本地存储sessionstorage
HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。
3、离线缓存(application cache)
< 参考:http://blog.csdn.net/s164828378/article/details/52747032>
6.HTTP状态码有哪些,分别代表什么意思?
答:100: 初始的请求已经接受,客户应当继续发送请求的其余部分;
101:服务器将遵从客户的请求转换到另外一种协议;
200:请求数据成功。
301:客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
404:请求失败,请求所希望得到的资源未被在服务器上发现;
505:服务器不支持,或者拒绝支持在请求中使用的 HTTP 版本。
<参考:http://tool.oschina.net/commons?type=5>
7.css3新增伪类选择器有哪些?
答:first-of-type、last-of-type、only-of-type、only-child、nth-child(n)、root<选择文档根元素>
<参考:https://zhidao.baidu.com/question/555177511.html>
8.用css3编写:div旋转90度,0.5秒后变圆,0.5秒后放大2倍。
|
答:
9.例举两种强制类型转换和一种隐式类型转换。
答:强制:a.parsInt(“123456”);b.Number(value);
隐式:“50”-4;
10.split()和join()的区别
答:join() 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。
split()方法:用于把一个字符串分割成字符串数组。
区别:这两个函数之间的主要区别在于 Join 可以使用任何分隔符字符串将多个字符串连接起来,而 Split 只能使用一个字符分隔符将字符串断开。
11.分别解释数组方法pop() push() unshift() shift();
a、pop():将删除 数组中的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
b、push():方法可向数组的末尾添加一个或多个元素,并返回新的长度。
c、Unshift():方法可向数组的开头添加一个或更多元素,并返回新的长度。
d、Shift():方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
12.事件绑定和普通事件有什么区别?
答:普通添加事件的方法不支持添加多个事件,最下面的事件会覆盖上面的,而事件绑定方式添加事件可以添加多个。
13.ajax请求的时候get和post方式的区别
答:1.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。
2.get安全性非常低,post安全性较高。
3.get会产生缓存,post没有缓存。
4.当我们在提交表单的时候我们通常用post方式,当我们要传送一个较大的数据文件时,需要用post。当传递的值只需用参数方式(这个值不大于2KB)的时候,用get方式即可。
<参考:http://www.cnblogs.com/oneword/archive/2011/06/06/2073533.html
http://blog.csdn.net/jqrsdsy/article/details/6737269 >
14.call和apply的区别。
答:call:调用一个对象的一个方法,以另一个对象替换当前对象;
Apply:应用某一对象的一个方法,用另一个对象替换当前对象。
<提示 : 这题不会没问题,我也不会,咳咳。欲知详情,自个儿百度去。>
15.事件委托是什么?使用事件委托有什么好处?
答:事件委托是:利用冒泡的原理,把事件加到父级上,触发执行效果;
好处是:提高性能,较少对dom的频繁操作。
<参考:http://www.cnblogs.com/leejersey/p/3801452.html >
16.如何阻止事件冒泡和默认事件?
答:功能:停止事件冒泡:
|
功能:阻止事件默认行为:
|
17.添加 删除 替换 插入到某个DOM的方法
|
A.增:
|
B.删:
|
C.替换:
|
D.插入:
18.跨域的方法:
答:1.jsonp:
2.通过修改document.domain来跨子域;
3.使用window.name来进行跨域;
4.使用HTML5中新引进的window.postMessage方法来跨域传送数据;
<参考:http://www.cnblogs.com/2050/p/3191744.html >
19.编写一个数组去重的方法
|
答:
20.AJAX请求JSON数据后如何解析
|
答:
《参考:http://caibaojian.com/ajax-jsonp.html 》
至此结束
答案出自:宇哥
加群有惊喜:535880373