1.严格模式与混杂模式如何让区分
严格模式:即标准模式; 是指浏览器按照w3c标准解析代码.。页面排版及 JS 解析是以该浏览器支持的最高标准来执行。
混杂模式:又叫怪异模式或者是兼容模式; 是指浏览器用自己的方式解析代码.。,主要用来兼容旧的浏览器,向后兼容
2.写出几种IE6 BUG的解决方法
- 双边距BUG:float引起的,使用display
- 3像素问题:float引起的,使用display:inline -3px;
- 超链接hover:点击后失效,使用正确的书写顺序link-visited-hover-active
3.描述css reset的作用和用途
reset重置浏览器的css默认属性,浏览器的品种不同,样式不同,然后重置,让他们统一
4.你如何对网站的文件和资源进行优化?
文件合并;文件压缩;使用CDN托管;缓存使用
5.清除浮动的几种方法,各自的优缺点
- 使用空标签清除浮动 clear:both
原理:添加一个空div,利用css的clear:both清除浮动,让父级div能自动获取到高度
优点:通俗易懂,容易掌握
缺点:会添加很多无意义的空标签,有违结构与表现的分离,在后期维护中将是噩梦 - 父级div定义overflow:hidden
原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度
优点:简单,代码少,浏览器支持好
缺点:不能和position配合使用,因为超出的尺寸的会被隐藏 - 父级div定义伪类:after和zoom(用于非IE浏览器)
原理:IE8以上和非IE浏览器才支持:after,原理和方法1有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题
优点:浏览器支持好,不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)。
缺点:代码多,要两句代码结合使用,才能让主流浏览器都支持
6.javascript的typeof返回哪些数据类型?
obiect、number、function、boolean、underfind、string
7.例举3种强制类型转换和2种隐式类型转换
强制(parseInt,parseFloat,number)
隐式(== – ===)
8.split() join() 的区别
split()将一个字符串分割成字符串数组
join()用于把数组中的所有元素放入一个字符串
9.数组方法pop() push() unshift() shift()
pop():用于删除数组的最后一个元素并返回删除的元素
push():可向数组的末尾添加一个或多个元素,并返回新的长度
shift():用于把数组的第一个元素从其中删除,并返回第一个元素的值
unshift():方法可向数组的开头添加一个或更多元素,并返回新的长度
10.事件绑定和普通事件有什么区别
普通事件:
div1.function(){};
<button onmouseover=””></button>
1、如果说给同一个元素绑定了两次或者多次相同类型的事件,那么后面的绑定会覆盖前面 的绑定
2、不支持 DOM 事件流 事件捕获阶段=>目标元素阶段=>事件冒泡阶段
事件绑定addEventListener:
1、 如果说给同一个元素绑定了两次或者多次相同类型的事件,所有的绑定将会依次触发
2、 支持 DOM 事件流的
3、 进行事件绑定传参不需要 on 前缀
addEventListener(“click”,function(){},true);
//此时的事件就是在事件冒泡阶段执行
11. IE 和 DOM 事件流的区别
1.执行顺序不一样
2.参数不一样
3.事件加不加 on
4.this 指向问题
IE9 以前:attachEvent(“onclick”)、detachEvent(“onclick”)
IE9 开始跟 DOM 事件流是一样的,都是 addEventListener