javascript测试题.docx
《javascript测试题.docx》由会员分享,可在线阅读,更多相关《javascript测试题.docx(10页珍藏版)》请在冰豆网上搜索。
javascript测试题
html5-10班js阶段测试题
1.js的几种数据类型?
判断基本数据类型的操作符是什么?
(6分)
Number,String,Boolean,undefined,obejct
Typeof
答对一个得一分
2.列举你知道的JS浏览器兼容问题。
(6分)
写到三个以上(包含三个满分,每个两分)
1
2ie不支持ClassName取标签,非ie支持
3获取非ie窗口的scrolltop值通过document.body.scrollTop
获取ie窗口的scrolltop值通过document.documentElement.scrollTop
4通过childNodes获取子节点,ie不能取到回车节点,非ie可以。
5innerText在火狐中不可用
6addEventListener非ie支持,attachEventie专用
7input标签的type属性在ie中不可修改
3.setTimeout()和setInterval()的区别以及使用它们需要注意的事项;(6分)
一共3点,每点2分
setInterval(函数,time)从载入后,每隔指定的时间就执行一次函数(循环执行),放控制函数外部。
setTimeout(函数,time)在载入后延迟指定时间后,去执行一次函数,次数是一次,放控制函数内部。
注意:
1这两种方法可能看起来非常像,而且显示的结果也会很相似,不过两者的最大区别就是,setTimeout方法不会每隔x秒钟就执行一次函数,它是在每次调用setTimeout后过x秒钟再去执行函数。
这意味着如果函数的主体部分需要2秒钟执行完,那么整个函数则要每x+2秒钟才执行一次。
而setInterval却没有被自己所调用的函数所束缚,它只是简单地每隔一定时间就重复执行一次那个函数。
如果要求在每隔一个固定的时间间隔后就精确地执行某动作,那么最好使用setInterval,而如果不想由于连续调用产生互相干扰的问题,尤其是每次函数的调用需要繁重的计算以及很长的处理时间,那么最好使用setTimeout。
2注意及时清计时器
3setTimeout(alert(this),20)/setInterval(alert(this),20)中this都指向window
4不能直接传参
4.字符串转化为整形的方法,整形转化为字符串的方法;(4分)
1、parseInt()、Number();
2、toString();String();“”;//eval
每个两分(不止这几种只列出了最常见的)
toString与String区别:
数值、布尔值、对象、字符串值有toString()方法,但null和undefined值没有这个方法;String能将任何任何类型的值转换为字符串,包括null和undefined。
再调用数值的toString()方法时,可传递一个参数:
输出值的的基数。
通过传递基数,toString()可以输出二进制、八进制、十六进制等表示的字符串。
例子:
varnum=10;
num.toString()//’10’
num.toString
(2)//’1010’
num.toString(8)//’12’
num.toString(16)//’a’
5.在团队开发中,你是如何避免JS命名冲突的?
(4分)
1、闭包
2、命名空间
3、可以开发前规定命名规范,根据不同开发人员开发的功能在函数前加前缀
每种2分方法,不止两种,答对两个或以上给满分
6.简述一下绑定事件的常见方法,它们有什么特点?
(6分)
1、在标签中绑定;
2、Element.on+type=func;
3、attachEvent("on"+type,func);
4、addEventListener(type,func,false);执行冒泡阶段
addEventListener(type,func,true);执行捕获阶段
每个1.5分
7.
functiontest(){
alert(this);
}
test();
varo=['a'];
o.test=test3=function(){
alert(this);
}
o.test();
test3();分别弹出什么?
为什么?
(8分)
第一个弹window,函数中this指向window,
第二个弹a,方法中的this指向对象
第三个弹window,test3是一个函数;
(能答出弹什么给一分,能说出原因给三分)
8.vara;alert(a)会弹出什么?
为什么?
(4分)
undefined,变量a声明了,但是未赋值;(能答出弹什么给一分,能说出原因给三分)
9.vara=1;
functiontest(){
a++;
alert(a);
vara=1;
alert(a);
}
test();//结果是多少?
为什么?
(6分)
第一个弹NaN,a在test()里面找的时候,如果前面没有声明vara;那么a会自动变成vara;但是未赋值,所以是undefined,执行a++的时候会变成NaN,不是一个有效的数值;
第二个弹1,因为声明了变量a=1;所以弹出1;
(能答出弹什么给一分,能说出原因给2分)
10.如何创建一个新的div,并把它插入到