一、单选题(共20题,每题2分)得分:2.0分
1.下面可以获取浏览器在卷动后,隐藏的文档部分的高度的属性是
A window.body.scrollTop
B document.body.scrollTop;
C document.scrolTop;
D documentElement.body.scrollTop
正确答案: B
解析:基础属性
2.在HTML页面中,下列选项不属于键盘相关事件的是
A onkeyup
B onkeydown
C oncontextmenu
D onkeypress
正确答案: C
解析:
3.要检测值是否为 NaN,应使用什么函数
A Number()
B parseInt()
C whoisNaN()
D isNaN()
正确答案: D
解析:应记忆的方法
4.以下正则中不可以验证数字的是
A /[0-9]/
B /\D/
C /0|1|2|3|4|5|6|7|8|9/
D /\d/
正确答案: B
解析:\D匹配的是非数字
5.下面的 JavaScript 语句中,哪个实现检索当前页面中的表单元素中的所有文本框,并将它们全部清空
A for(var i=0;i< form1.elements.length;i++) {
if(form1.elements[i].type==“text”) form1.elements[i].value="";
}
B for(var i=0;i<document.forms.length;i++) {
if(forms[0].elements[i].type==“text”) forms[0].elements[i].value="";
}
C if(document.form.elements.type==“text”) form.elements[i].value=""
D for(var i=0;i<document.forms.length; i++){
for(var j=0;j<document.forms[i].elements.length; j++){
if(document.forms[i].elements[j].type==“text”) document.forms[i].elements[j].value="";
}
}
正确答案: D
解析:
for(var i=0;i<document.forms.length; i++){
for(var j=0;j<document.forms[i].elements.length; j++){
if(document.forms[i].elements[j].type==“text”)
document.forms[i].elements[j].value=""; }
}
找到所有form里面所有的text文本框,把value设置为空。
6.Javascript中,假设 foo 对象有 att 属性,那么以下获取att属性值的表达式哪个是错误的
A foo.att
B foo[“att”]
C foo{“att”}
D foo[“a”+“t”+“t”]
正确答案: C
解析:访问一个对象的属性有两种方式:
- foo.att
- foo[“att”]
D选项与B选项属于相同的访问方式
7.下列代码输出的结果是
function fn(a) {
console.log(a);
var a = 2;
function a() {};
console.log(a);
}
fn(2);
A undefined和报错
B function a() {}和2
C 报错和 2
D undefined和function a(){};
正确答案: B
解析:声明提升,var 要比 function 先提升。
8.下面说法正确的是
A setTimeout 函数是同步的
B setInterval 函数是异步的
C setTimeout(function( ) { } ,100) 会立即同步执行
D setInterval 函数会立即执行
正确答案: B
解析:1
9.通过哪个属性可以判定一个DOM节点的类型
A prototype
B nodeType
C type
D dim
正确答案: B
解析:
10.预测一下代码片段的输出结果:var str; alert(typeof str)
A string
B undefined
C object
D String
正确答案: B
解析:变量定义未赋值值为undefined,undefined的数据类型就是undefined
11.在Javascript中,需要声明一个整数类型的变量num,以下哪个语句能实现上述要求?
A int num
B number num
C var num
D Integer num
正确答案: C
解析:var关键字申明变量
12.下面语句var x= -10, y; x=2*x; y=x+15;计算后y的结果是
A 15
B 10
C -5
D 5
正确答案: C
解析:简单计算题目
13.关于location的说法,错误的是
A href属性可以实现页面跳转
B location一般是用于操作浏览器地址栏的对象
C 该对象没有任何属性和方法
D 该对象可以实现页面跳转
正确答案: C
解析:1
14.下面那个方法用来删除一个dom元素
A removed
B delete
C removeChild
D deleteChild
正确答案: C
解析:记忆性知识
15.下面表示单击事件的是?
A onmousemove
B onmouseout
C onmouseover
D onclick
正确答案: D
解析:记忆性知识
16.var p = {username:“leson”}获取p对象里面leson正确的做法为
A p.[“username”]
B p.“username”
C p[username]
D p[“username”]
正确答案: D
解析:对象属性访问方式:obj.name或obj[“name”]
17.把字符串以某个分隔符进行分割,也就是把字符串拆分成数组的函数是()
A join()
B reserve
C split()
D match()
正确答案: C
解析:字符串的拆分
18.Event对象的 target属性表示()
A 发生事件的事件源
B 一个字符串
C 一个数组
D 以上都不对
正确答案: A
解析:事件的发生源
19.以下代码 var temp =parseInt(“12.35b”); 执行完毕后,temp的值是( )
A 12.5.3
B 12.5
C 12.5.3b
D 12
正确答案: D
解析:取整了
20.表单提交事件是:
A onclick
B onsubmit
C onchange
D onmouseover
正确答案: B
解析:定时器里的代码执行时,for循环已经执行完毕,for循环执行完毕后的i的值是5
二、多选题(不定项选择)(共10题,每题2分)
1.JavaScript里事件的三个阶段是
A 捕获
B 处于目标阶段
C 冒泡阶段
D 代理阶段
正确答案: A,B,C
解析:
2.实现一个元素的拖拽,至少需要那几个事件,请选择
A onmousedown
B onmousemove
C onmouseup
D onmouseover
正确答案: A,B,C
解析:
3.var a=“10”,以下能实现字符串转成数字的是
A a*1
B Number(a)
C a-0
D a+0
正确答案: A,B,C
解析:
4.下面哪些是全局方法
A prompt()
B match()
C alert()
D confirm()
正确答案: A,C,D
解析:uuu
5.字符串的操作方法有
A indexOf
B lastIndexOf
C charAt
D charCodeAt
正确答案: A,B,C,D
解析:
String.fromCodePoint(97) ===> a
String.fromCharCode( 65) ===> A
6.以下属于ES6新增内容的有
A 严格模式
B 箭头函数
C 解构赋值
D class
正确答案: B,C,D
解析:严格模式是ES5中就已经存在的。
但是在ES6的很多语法中,默认使用严格模式
7.在JavaScript语法中,下列说法正确的是( )
A parseInt(43.12)返回值为43
B parseInt(“abc43.12”)返回值为NaN
C parseFloat(‘45.13abc’)==parseInt(43.12) 返回true
D isNaN(“78”)返回true
正确答案: A,B
解析:ABC的选项都是记忆性知识,D选项中要注意,isNaN()函数,如果是数字,返回false,不是数字返回true
8.以下属于event对象属性的是()
A pageX
B keyCode
C offsetTop,offsetLeft
D offsetX
正确答案: A,B,D
解析:BC属性元素本身 不属于事件
9.处理兼容性正确的为()
A window.event||e
B evt.which||evt.keyCode
C evt.target || evt.srcElement
D document.documentElement.scrollTop ||document.body.scollTop
正确答案: A,B,C,D
解析:
A、处理IE兼容性,获取时间对象
B、处理火狐与其他浏览器兼容性,获取键盘按键码
D、处理文档类型(doctype)不同时,滚动位置的获取
10.对于this对象的理解,正确的是
A 普通函数,this指向window
B 事件中的this 指向事件绑定的元素节点
C 箭头函数里,this表示上层有function关键字的函数的this
D 上面说法都不正确
正确答案: A,B,C
解析:
//this:this必须出现在函数里。
//this,就是这个,代名词。代表谁?
//1、当this所在函数是事件处理函数,this就是事件源
//2、当this所在函数是构造函数,this就是new(调用构造函数)出来的对象
//3、当this所在函数是类的方法,this就是调用函数时的对象(调用时,写在函数名前面的那个对象)。注意,一定是函数调用时。
//4、当this所在函数没有明确的所属对象,那么this就是window对象。
三、填空题(共5题,每题2分)
1.事件对象的兼容写法
正确答案:
(1) e||window.event
解析:
2.给你一个json对象{title:‘node7’,price:788},如果取得值node7?
正确答案:
(1) json.title
解析:
3.写出相应的鼠标相关事件:移入事件
正确答案:
(1) onmouseenter;onmouseover
(2) onmouseout;onmouseleave
(3) onmousemove
解析:
4.js中表示对象的数据类型的单词是
正确答案:(1) object
解析:抛物线运动
5.请写出ES6中定义类的关键字
正确答案:(1) class
解析:正常的es6考点 class extends new
四、简答题(共1题,每题10分)
得分:3分
1.获取鼠标在页面可视区域的位置坐标使用哪个属性?获取鼠标相对于页面的绝对坐标(包含页面滚动的距离)如何计算?获取鼠标相对于某个元素的位置使用什么属性
正确答案:
1.获取鼠标在页面可视区域的x坐标使用clientX属性,y坐标使用clientY属性
2.获取鼠标相对于页面的绝对坐标(包含页面滚动的距离):
document.onclick = function (e) {
e = e || window.event; var pagex = e.pageX || e.clientX + scroll().left;
var pagey = e.pageY || e.clientY + scroll().top;
}
function scroll(){
return {
“top”: window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop,
“left”: window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft
}
}
3.获取鼠标相对于某个元素的位置使用offsetX/offsetY属性 低版本火狐使用layerX/layerY
五、编程题(共2题,每题10分)
得分:10分
1.已知页面结构
c
正确答案:
解析:e.target.tagName需要注意获取到的是大写的标签
通过事件委托实现点击li时alert出相应的索引和内容。
- 苦心人
- 天不负
- 卧薪尝胆
- 三千越甲可吞吴
正确答案:
var ul = document.getElementsByTagName(“ul”)[0];
var li = document.getElementsByTagName("li");
for (var i = 0; i < li.length; i++) {
li[i].index = i;
}
ul.onclick = function(e){
e = e || event;
var target = e.target || e.srcElement;
if(target.nodeName.toLowerCase() == "li"){
alert(target.index);
alert(target.innerHTML);
}
}
解析:
1.遍历li节点,给每个节点添加一个index属性
2.给父节点ul绑定一个单击事件,通过target属性判断点击的子元素节点是否是li,如果是,则可以输出index及li的innerHTML