前端面试题
来源:互联网 发布:数据结构算法设计题 编辑:程序博客网 时间:2024/06/18 07:25
HTML篇
1.html5有哪一些新特性?
1.新的文档类型 (New Doctype) 2.脚本和链接无需type 3.语义Header和Footer 4.Hgroup
5.标记元素 6.图形元素 7.重新定义<small> 8.占位符
9.必要属性 10.Autofocus 属性 11.Audio ,video支持 视频预载
2.不同浏览器的html差异
1)自定义属性问题
说明:IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性。
解决方法:统一通过getAttribute()获取自定义属性。
2)event.x与event.y问题
说明:IE下,even对象有x,y属性,但是没有pageX,pageY属性;Firefox下,even对象有pageX,pageY属性,但是没有x,y属性.
解决方法:使用mX(mX = event.x ? event.x : event.pageX)来代替IE下的event.x或者Firefox下的event.pageX.
3)event.srcElement问题
说明:IE下,event对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性.
解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target。请同时注意event的兼容性问题。
4)textContent与innerText
IE中的innerText是需要对innerHTML的值进行
1、HTML转义(等同于XML转义,对<、&等转义字符进行处理);
2、经过HTML解释和CSS样式解释;
3、之后又剔除格式信息之后留下的纯文本。
而FF中的textContent没有2、3步,在经过了HTML转义之后直接剔除所有html标签后得到的纯文本。
7)png的透明问题,ie需要滤镜通道。
3.结构和表现相分离带来的好处主要有哪些?
1.数据的多样显示。通过不同的样式表适应不同的设备,做到内容与设备无关
2.保持整个站点的视觉一致性变得非常简单,修改样式表就可以轻松改版;
3.由于结构清晰,数据的集成、更新和处理更加方便灵活;
4.更有意义的搜索。
css篇
1.css3有哪些新特性
css3实现的新特性有: 圆角、阴影 文字阴影,旋转 线性渐变, 媒体查询,多背景 定位 多栏布局 缩放,倾斜
2.css清除浮动的集中方式
1.父元素上加overflow: hidden
2.子元素后再加一个用于清除浮动的br元素,写个专门清除浮动的.cb类加在它上面。上面的例子也可使用clear: left清除左浮动,为了方便才使用clear: both,最后不要忘了加上_display: inline兼容IE6。
3.父亲元素浮动的实现方式
只要父元素也跟着浮动的话,也可以达到效果。可是这样会影响后面元素的定位,而且有些时候父元素是定位死的,无法变成浮动。
4.overflow实现方式
在父元素上使用overflow: hidden可以达到清除浮动的效果,也可以是overflow: auto。可是通过overflow实现的清除浮动都有一个缺点,当子元素超出了父元素,父元素使用overflow: hidden的话,子元素超出的部分会被隐藏;使用overflow: auto的话,父元素上会出现滚动条,最后也别忘加上zoom: 1触发IE的hasLayout。
5.display:inline-block的实现方式
这种用于现代浏览器的实现方式更加灵活了,可是不支持IE10以下的浏览器,flex-flow的两个值分别表示flex-direction(横向还是纵向)、flex-wrap(是否换行),
7.:after伪元素的实现方式
利用:after伪元素,实现在父元素内容后面清除浮动的效果。
最佳实现方式
<div class="parent"><div class="child"></div><div class="child"></div><div class="child"></div><div class="child"></div></div>
.parent:before,.parent:after { content: ""; display: table;}.parent:after { clear: both;}.parent { zoom: 1;}.child { width: 25%; height: 50px; float: left;}
javascript
5.array.reverse() reverse方法反转array里的元素的顺序,并返回数组本身
6.array.shift和array.unshift(item...) shift方法移除数组的第一个元素,并返回这个弹出元素。如果这个数组是空的,返回undefined。
7.array.slice(start,end) slice方法就是从数组中切割一段,其长度为end-start。end默认长度为array.length
8.array.splice(start,deleteCount,item...) splice方法是从array中移除一个或多个参数,并用新的item代替他们。返回一个包含移除参数的数组。
9.array.sort(comparefn) sort方法对array中的内容进行排序,默认的比较函数把被排序的元素视为字符串。所以一般不能得到你期望的结果
10.array.sort(comparefn) sort方法对array中的内容进行排序,默认的比较函数把被排序的元素视为字符串。所以一般不能得到你期望的结果
4.javascript中删除数组某元素的方法
1.delete方法:delete arr[1] 这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍 历数组元素可以才用
2.数组对象splice方法:arr.splice(1,1); 这种方式数组长度相应改变,但是原来的数组索引也相应改变 splice参数中第一个1,是删除 的起始索引(从0算起),
3.Array.remove(dx) 功能:删除数组元素. 参数:dx 删除元素的下标. 返回:在原数组上修改数组
4.自定义删除数组的方法
5.在javascript中如何体现面向对象的三大特性的?
多态从某种意义上来说,多态是面向对象中重要的一部分,也是实施继承的主要目的。一个实例可以拥有多个类型,它既可以是这种类型,也可以 是那种类型,这种多种状态被称为类的多态。多态的表现形式很多,其中继承和重载都是多态的表现形式。
实现方法:1、对象冒充 2、通过call或者apply实现
6.什么是闭包?
闭包就是能够读取其他函数内部变量的函数。
闭包的作用 一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
7.javascript的类型转换
显示类型转换和隐式类型转换
8.动态加载如何执行
1,.直接document.write 2.动态改变已有script的src属性 3.方法三:动态创建script元素(异步) 方法四:动态创建script元素(同步)
方法五:XMLHttpRequest/ActiveXObject异步加载 方法六:XMLHttpRequest/ActiveXObject同步加载
具体参见 http://www.cnblogs.com/zhuimengdeyuanyuan/archive/2013/03/06/2946277.html
9.事件冒泡
在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。
【阻止事件冒泡例子】
<div onclick="showMsg(this,event)" id="outSide" style="width:100px; height:100px; background:#000; padding:50px">
<div onclick="showMsg(this,event)" id="inSide" style="width:100px; height:100px; background:#CCC"></div>
</div>
<script type="text/javascript">
//阻止事件冒泡后,你点击灰色盒子,整个过程只弹一次对话框了(注意与默认情况对比)
function showMsg(obj,e)
{
alert(obj.id);
stopBubble(e)
}
//阻止事件冒泡函数
function stopBubble(e)
{
if (e && e.stopPropagation)
e.stopPropagation()
else
window.event.cancelBubble=true
}
</script>
10.ajax是什么?ajax的交互模型?同步和异步的区别?如何解决跨域问题
异步 JavaScript 及 XML.
AJAX 的交互模型( AJAX 的过程)
用户发出异步请求;
创建 XMLHttpRequest 对象;
告诉 XMLHttpRequest 对象哪个函数会处理 XMLHttpRequest 对象状态的改变,为此要把对象的 onReadyStateChange 属性设置为响应该事件的 JavaScript 函 数的引用
创建请求,用 open 方法指定是 get 还是 post ,是否异步, url 地址;
发送请求, send 方法
接收结果并分析
实现刷新
11.get与post的区别
1.GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
2.GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),POST把提交的数据则放置在是HTTP包的包体中。
3. 因此对于GET提交时,传输数据就会受到URL长度的限制。 POST:由于不是通过URL传值,理论上数据不受限。
4.安全性:POST的安全性要比GET的安全性高。
12.如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件,JS文件与图片
把所有的CSS文件都放入一个样式表中,通过把所有的脚本放到一个文件中来减少HTTP请求的方法。js文件也采用同样的方法。把所有的背景图像都放到一个图片文件中,然后通过CSS的background-image和background-position属性来显示图片的不同部分。
13.Jquery源码是否尝试去读过,说说基本的架构或者jquery.fn.init中做了哪些判断
14.前端优化知识都知道哪些?
1.html页面优化 2.代码优化 3.JS优化 4.服务器方面优化
15.国内外的前端牛人都知道哪些?
JavaScript 语言:周爱民、老赵、玉伯、hax, 月影、CatChen, winter, 白露飞 等等
DOM 和浏览器兼容性:winter, 司徒正美、屈超、怿飞 等等
HTML 和 CSS:彪叔、aoao, 怿飞、macji 等等 类库框架:玉伯、JK, cnberg, yiminghe, 元彦 等等
前端布道士:克军、玉伯、怿飞、秦歌、小马 等等
- 前端面试题
- 前端面试题
- 前端面试题整理
- 前端面试题
- web前端面试题
- 前端开发面试题
- 收录:前端面试题
- 前端面试题
- Web前端面试题
- 前端面试题
- 阿里巴巴 前端面试题
- 前端各种面试题
- web前端面试题
- web前端面试题
- 前端面试题
- web前端面试题
- 一道前端面试题
- 前端面试题
- Vector3
- getHibernateTemplate().execute(new HibernateCallback())方法
- aapt 命令可应用于查看apk包名、主activity、版本等很多信息
- ViewPager onPageChangeListener总结
- Hive整合HBase 通过Hive读/写HBase中的表
- 前端面试题
- Android 应用开发的耗电量控制
- php的phpass类加密算法
- c++域名判断是否ipv6的网络
- Linux中查找命令总结
- linux总结-第一讲-中断和异常
- SyntaxError: Non-ASCII character '\xe6' in file
- android登录注册关于判断账号密码为空时不崩溃
- linux进程间通信-管道通信