1.this啥时候不可以使用
a.定时器中不能使用
b.事件中多嵌套了一层函数
c.行间不能使用
d.attachEvent中不可以使用
e.箭头函数
2.for循环中的i啥时候不能用
a.循环中加事件,事件中不能用i
b.循环中加定时器,定时器中不能用i
解决方法:1.自定义属性 2.封闭空间
3.严格模式
代码规范
解决了不加var声明变量的问题
4.background-attachment
css中的一种属性,设置背景图像是否固定或随着页面的其余部分滚动
语法object.style.backgroundAttachment = "fixed"
scroll:默认值,背景图片会随着页面其余部分的滚动而移动
fixed:当页面的其余部分滚动时,背景图片不会移动
inherit:规定从夫级继承background-attachment属性设置
5.解析json的三种方法
1.eval()方法
function toJson(){
var Json = eval('('+str+')');
return Json;
}
2.new Function 方法
function toJson(){
var Json = (new Function("return"+str))();
return Json;
}
3.Json.parse() 方法
function toJson(){
return Json.parse(str)
}
6.
看下列代码,输出什么?解释原因
var undefined; // 报错
undefined == null; // true
1==true; // true
2==true; // false
0==false; // true
0==''; // true
NaN==NaN; // false
{}==false; // false
{}==!{}; // false
7.当一个DOM节点被点击时,我们希望能够执行一个函数,应该怎么做?JavaScript的事件流模型都有什么?
直接在DOM里绑定事件:<div onclick=”test()”></div>
在JS里通过onclick绑定:xxx.onclick = test
通过事件添加进行绑定:addEventListener(xxx, ‘click’, test)
那么问题来了,Javascript的事件流模型都有什么?
“事件冒泡”:事件开始由最具体的元素接受,然后逐级向上传播
“事件捕捉”:事件由最不具体的节点先接收,然后逐级向下,一直到最具体的
“DOM事件流”:三个阶段:事件捕捉,目标阶段,事件冒泡
8.对web的标准以及w3c的理解与区别。
web标准简单来说可以分为结构、表现和行为。其中结构主要是有HTML标签组成。
或许通俗点说,在页面body里面我们写入的标签都是为了页面的结构。
表现即指css样式表,通过css可以是页面的结构标签更具美感。
行为是指页面和用户具有一定的交互,同时页面结构或者表现发生变化,主要是有js组成。
9.CSS引入的方式有哪些?link和@import的区别是什么?
内嵌,导入外部样式@import,链入外部样式<link>,内部样式<head>
(1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;
而@import是CSS提供的,只能用于加载CSS;
(2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
(3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;
10.浏览器兼容性的解决方法
1.在有的浏览器中,默认字体大小为12px,所以在设字体大小的时候,最小设为12px,如果在做的过程中,发现字体小于12,可直接作为图片使用
2.a标签对里不能嵌套a标签对
3.若给a标签内的内容样式加上样式,需要设置display:block;(在IE中如果设置宽高会自动变成块,在FF中则不会),但如果设置了float属性,就不需要设置display:block。
4.ul,ol在FF默认情况下,有list-style-type样式和padding值,dl在IE和FF默认情况下,有padding值,所以应该事先声明ul,li,ol,dl,dd,dd{margin:0;padding:0}。
5.作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应
6.关于手形光标. cursor: pointer. 而hand 只适用于 IE.
7.css布局中的居中问题:在父级元素定义TEXT-ALIGN: center;这个的意思就是在父级元素内的内容居中;对于IE这样设定就已经可以了。但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“margin-right: auto;margin-left: auto; ”需要说明的是,如果你想用这个方法使整个页面要居中,建议不要套在一个DIV里,你可以依次拆出多个div,只要在每个拆出的div里定义margin-right: auto;margin-left: auto; 就可以了。
8.浮动ie产生的双倍距离
#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离,这时需要设置display:inline; //使浮动忽略}