正确答案: A 解析: list.childNodes[0]为文本节点
13.下列哪个对象不属于bom对象 A document B location C history D offsetWidth 正确答案: D 解析:
14.关于JavaScript中的Math对象的说法,正确的是 A Math.ceil(512.51)返回的结果为512 B Math.floor( )方法用于对数字进行下舍入 C Math.round(-512.51)返回的结果为-512 D Math.random( )返回的结果范围为0-1,包括0和1 正确答案: B 解析:
15.var arr = [3,4,6],删除数组中的最后一项 A arr.pop() B arr.pop(6) C arr.shift() D arr.shift(6) 正确答案: A 解析:
16.var arr = [5,3,2,4]; var res = arr.splice(0); console.log(res) 结果是 A [5,3,2,4] B [5] C [5,3] D [2,4] 正确答案: A 解析:
17.实现数组的倒序方法 A reverse() B sort() C join() D find() 正确答案: A 解析:
18.var str = “qianfengana”; var res = str.lastIndexOf(“a”); console.log(res); 输出的结果是 A 9 B 2 C 7 D 10 正确答案: D 解析:
19.添加节点的方法 A 父节点.appendChild() B 父节点.append() C 父节点.prepend() D 父节点.prependChild() 正确答案: A 解析:
20.var arr = [how,are,you]; arr.reverse(); alert(arr)
A how,are,you
B you,are,how
C h,o,w,a,r,e,y,o,u
D u,o,y,e,r,a,w,o,h
正确答案: B 解析: reverse翻转,直接修改原数组
21.下列关于innerHTML和innerText描述正确的是
A innerHTML会被解析成html标签渲染,innerText是纯文本显示
B innerHTML会发生转义如 < 会被转换成 < ,innerText原样渲染
C innerHTML和innerText都会被解析成html标签渲染
D innerHTML和innerText都是纯文本显示
正确答案: A 解析: innerhtml不会发生转义
22.关于setInterval(check ,10)中说法正确的是
A 程序循环执行10次
B check函数每10秒执行一次
C 10做为参数传给函数check
D check函数每10毫秒执行一次
正确答案: D 解析: 基本定时器概念
23.获取从1970年/01/01 午夜到当前时间的毫秒值
A getTime()
B getDay()
C setDate()
D getDate()
正确答案: A 解析: A
24.var arr = [100,4,2,3,200]; alert(arr.sort(function(a,b){return b - a;}))
A 2,3,4,100,200
B 200,100,4,3,2
C 100,2,200,3,4
D 4,3,200,2,100
正确答案: B 解析: sort添加了比较器函数,并且b-a是降序排序
25.在JavaScript中,下列关于window对象方法的说法错误的是
A window对象包括location对象、history对象和document对象
B window.onload 事件绑定的函数会在一个该页面加载完成后执行
C window.open( )方法用于关闭指定的URL路径
D window.close( )方法用于关闭浏览器窗口
正确答案: C 解析: open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口。
26.0.1+0.7==0.8 该表达式返回
A true
B false
C Infinity
D NaN
正确答案: B 解析: B
27.哪个属性可以获得滚动条已经滚动的垂直距离
A document.scrollTop
B document.top
C document.body.scrollTop
D window.scrollTop
正确答案: C 解析: C
28.以下代码输出结果为 var bool = true; setTimeout(function(){ bool = false },0); console.log(bool)
A false
B true
C 报错
D undefined
正确答案: B 解析: 本题考查异步,属于较早提及难度等级高的知识。 异步程序晚于同步程序执行
29.var arr = [1,2,3,4]; arr.concat(1,2,4,[1,2,3],5); alert(arr.length)
A 4
B 9
C 11
D 5
正确答案: A 解析: concat不修改原数组
30.var arr = [1,2,3,4]; arr.join("&"); console.log(arr);
A [1,2,3,4]
B 1&2&3&4
C [1&2&3&4]
D 1,2,3,4
正确答案: A 解析: join 不改变原数组。
二、多选题(不定项选择)
1.下面哪些方法可以将一个小数取整
A Math.floor()
B Math.ceil()
C Math.round()
D Math.abs()
正确答案: A,B,C 解析: Math.floor()向下取整;Math.ceil()向上取整;Math.round()四舍五入取整
2.下面哪些对象可以通过 构造函数 的方式创建
A Date
B Math
C Array
D String
正确答案: A,C,D 解析: Math是数学对象,可以直接使用,不用创建
3.window对象的内置对象有哪些
A location
B event
C history
D document
正确答案: A,C,D 解析: event不是内置对象
4.下面哪些方式查找到的页面元素是一个类数组(伪数组)
A querySelectorAll()
B getElementsByName()
C getElementsByTagName()
D getElementsByClassName()
正确答案: A,B,C,D 解析: 都是
5.数组添加元素的方法有
A push
B pop
C slice
D unshift
正确答案: A,D 解析: AD
6.以下属于window子对象的有
A history
B location
C navigator
D document
正确答案: A,B,C,D 解析: window是全局对象,下面很多子对象,子对象又有对应的属性和方法,history、location、navigator、document都是常用的子对象。可以打印到控制台查看window对象的属性和方法。
console.log(window);
7.在JavaScript中,以下哪条语句能隐藏id为flower的div
A document.getElementById(“flower”).style.display=“none”;
B document.getElementById(“flower”).style.display=“hidden”;
C document.getElementById(“flower”).style.visibility=“none”;
D document.getElementById(“flower”).style.visibility=“hidden”
正确答案: A,D 解析: display属性没有hidden的值;
visibility属性没有none的值
8.下列哪些方式可以遍历数组
A for
B for-in
C for-by
D switch
正确答案: A,B 解析: for为常用循环语句,for-in主要用来遍历非数组对象,但是也可以遍历数组
js中没有for-by, switch是分支结构
9.下列哪些是字符串的方法
A replace()
B split()
C join()
D indexOf()
正确答案: A,B,D 解析: replace是替换,split是根据指定字符串分割字符成数组,indexOf是根据指定字符返回索引,join是将数组转成字符串
10.下列哪些是数组的方法
A charAt()
B sort()
C push()
D filter()
正确答案: B,C,D 解析: sort是数组的排序,push是在数组最后一位新增,filter可以对数组进行遍历的同时筛选数据,charAt可以根据指定的索引返回字符,不是数组的方法
11.以下哪些将数组转为字符串的方法
A join()
B toString()
C split()
D concat()
正确答案: A,B 解析: solit是将字符分割成数组,concat是合并数组
12.关于javascript中数组的说法中不正确的是
A 数组的长度必须在创建时给定,之后便不能改变
B 由于数组是对象,因此创建数组必须使用new运算符
C 数组内元素的类型可以不同
D 数组可以在声明的同时进行初始化
正确答案: A,B 解析: 数组的长度可以通过强行给指定索引设置值的方式改变;数组还可以使用字面量方式创建
13.鼠标事件有:
A onmouseover
B onclick
C onmouseout
D onmousemove
正确答案: A,B,C,D 解析: 都是
14.日期对象设置年月日的方法有
A setFullYear
B setYear
C setDay
D setDate
正确答案: A,D 解析: AD
15.开启定时器和延时器的方法有
A clearInterval()
B setTimeOut()
C setTimeout()
D setInterval()
正确答案: C,D 解析: CD
16.下列方法能截取字符串片段的是
A substr()
B substring()
C split()
D slice()
正确答案: A,B,D 解析: split是分割字符串,其他都可以截取
17.window对象的内置对象有哪些
A document
B history
C href
D location
正确答案: A,B,D 解析: document为window的文档对象,history为window的历史记录对象,location为window的url对象
18.下面对字符串的描述正确的是
A 字符串的长度可以通过length属性获取
B 字符串可以通过charAt()获取某个字符对应的索引
C 字符串可以通过indexOf()获取某个字符对应的索引
D 字符串可以通过join()转成数组
正确答案: A,C 解析: AC
19.以下不属于关键字或保留字的有
A class
B let
C style
D script
正确答案: C,D 解析: 关键字指该名字在语法中另有他用,保留字指Javascript 以后打算扩展使用的,都不能用来作为变量名、函数名和标签名;参考下表可知,class和let都是关键保留字,style和script则不是。
20.下列哪些是属于Date对象的方法
A setMonth()
B getFullYear()
C setDate()
D random()
正确答案: A,B,C 解析: random是Math的方法
(三)
一、单选题(共30题,每题2分) 1.下列关于事件委托说法错误的是
A 事件委托可以解决事件绑定程序过多的问题
B 事件委托利用了事件捕获原理
C 事件委托可以提高代码性能
D 事件委托可以应用在click,onmousedown事件中
正确答案: B 解析: 事件委托利用的是事件冒泡的原理
2.什么属性用于获取 HTML 文件的根节点
A documentElement
B rootElement
C documentNode
D documentRoot
正确答案: A 解析: html文件的根节点为html,获取方式为document.documentElement
3.以下关于Javascript中事件的描述中,不正确的是
A click——鼠标单击事件
B focus——获取焦点事件
C mouseover——鼠标指针移动到事件源对象上时触发的事件
D change——选择字段时触发的事件
正确答案: D 解析: change事件为input内容发生改变时触发的事件。
根据input的type属性值不同,具体的触发时机也不尽相同
4.要求用JavaScript实现下面的功能:在一个文本框中内容发生改变后,单击页面的其他部分将弹出一个消息框显示文本框中的内容,下面语句正确的是
A
B
C
D 1 2 3 4 5 6 7 8 正确答案: B 解析: onchange事件,在文本框内容发生变化切光标离开时触发
5.下列哪些不是es6中新增的:
A Objec.assign
B Array.from
C forEach
D for of 循环
正确答案: C 解析: forEach 是es5的
6.阻止浏览器默认行为,使用以下哪个方法
A stopPropagation()
B preventDefault()
C cancelBubble = false
D return true
正确答案: B 解析: D
7.下列代码执行结果为真的是
A 1<2 && “5”!=5
B 2>2*1 || “5”==5
C 2>2*1 && 5==5
D 2>=2*1 && “5”===5
正确答案: B 解析: B
8.下面可以获取浏览器在卷动后,隐藏的文档部分的高度的属性是
A window.body.scrollTop
B document.body.scrollTop;
C document.scrolTop;
D documentElement.body.scrollTop
正确答案: B 解析: 基础属性
9.下列对的对常量的描述或定义不对的是 A 常量名只能用大写 B const PI = 3.11; C const pi = 3.14 D 常量定义后不能被修改 正确答案: A 解析:
10.在HTML页面中,下列选项不属于鼠标相关事件的是 A onclick B onmouseover C onmousedown D onchange 正确答案: D 解析:
11.在HTML页面中,下列选项不属于键盘相关事件的是 A onkeyup B onkeydown C oncontextmenu D onkeypress 正确答案: C 解析:
12.以下选项中哪个是正则的量词 :
A 100
B num
C +
D .
正确答案: C 解析: +代表其前边的字符重复1~无限多次
13.以下属于正则的方法有
A text()
B replace()
C test()
D match()
正确答案: C 解析: 该方法用于检测参数字符串是否与正则表达式匹配
14.以下哪些属性不是事件对象event的属性
A offsetX
B clientX
C offsetLeft
D target
正确答案: C 解析: C、实时获取元素针对于offsetParent的left坐标
15.以下获取事件对象正确的方式是 :
A function fn(){ window.event }
B obox.onclick = function( ){ e }
C obox.onclick = function (event){ var evt = event || window.event }
D function fn( e ){ e }
正确答案: C 解析: 时间对象需要兼容
16.以下哪个事件不存在
A onclick
B onblur
C onlook
D oninput
正确答案: C 解析: A、点击事件
B、焦点离开事件
D、输入框输入事件
17.以下正则中不可以验证数字的是
A /[0-9]/
B /\D/
C /0|1|2|3|4|5|6|7|8|9/
D /\d/
正确答案: B 解析: \D匹配的是非数字
18.下列代码的执行结果是 var result = 12 + 2 + “12”- 2 * 2; document.write(result);
A 1221222
B 14124
C 1408
D 2820
正确答案: C 解析: var result = 12 + 2 + “12”- 2 * 2;
看等号右边,从左到右运算,
12+2等于14,
14+“12”等于“1412”(字符串拼接)
“1412”- 4 等于1408(减号会进行隐式转换)
19.在HTML页面中包含如下所示代码,则编写Javascript函数判断是否按下键盘上的回车键正确的编码是 (回车键的键盘码是13)
A function myKeyDown(){ if (window.keyCode==13){ alert(“你按下了回车键”)}};
B function myKeyDown(){ if (document.keyCode==13){ alert(“你按下了回车键”);}}
C function myKeyDown(){ if (event.keyCode==13){ alert(“你按下了回车键”)}}
D function myKeyDown(){ if (keyCode==13){ alert(“你按下了回车键”)}}
正确答案: C 解析: keyCode是event对象下面的属性,keycode等于13说明按下了回车键
20.下列代码的执行结果是 for(var i = 0;i<10;i++){} document.write(i);
A 10
B 11
C 9
D 死循环
正确答案: A 解析: for(var i = 0;i<10;i++){}
document.write(i);
for循环结束,才会执行下一个语句,循环结束的条件就是i=10的时候;
21.下列哪个不是javascript中的关键字或保留字
A class
B var
C link
D instanceof
正确答案: C 解析: 关键字是js有特定含义的词汇,保留字是js后面扩展会用的词汇,都不能用来作为变量名和函数名,请查看上图:
22.使用 JavaScript 向网页中输出
hello,以下代码中可行的是
A
B
C
D
1
2
3
4
5
6
7
正确答案: B
解析:
document.write()方法可以打印节点到页面显示,参数是字符串,如有标签需要写完整。document.write(“
hello”);正确
23.有var obj ={ name:”王大锤”, skill:”逗比”, logo:”日和漫画”} 使用循环将对象中的属性值依次取出并打印正确的是
A for(var i=0; i B for(var i=0; i C for(var attr in obj){ console.log(obj[attr]) } D return 正确答案: C 解析: 对象没有长度length,所以不能用for循环,需要用for in遍历。故A B错误,C正确 24.下面的 JavaScript 语句中,哪个实现检索当前页面中的表单元素中的所有文本框,并将它们全部清空 A for(var i=0;i< form1.elements.length;i++) {undefined if(form1.elements[i].type==“text”) form1.elements[i].value=""; } B for(var i=0;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 for(var j=0;j if(document.forms[i].elements[j].type==“text”) document.forms[i].elements[j].value=""; } 1 2 3 4 } 正确答案: D 解析: for(var i=0;i for(var j=0;j if(document.forms[i].elements[j].type==“text”) document.forms[i].elements[j].value=""; } } 找到所有form里面所有的text文本框,把value设置为空。 25.下列代码输出的结果是 var y = 1; var x = y = typeof x; console.log(x); A undefined B 1 C y D 报错 正确答案: A 解析: 在typeof x时,x只是被声明,但是没有被赋值 26.下列let声明变量说法有误的一项是 A let在某个{}内部使用时,外部不能访问该let声明的变量 B 用 let 声明变量没有声明提升 C let声明的变量, 变量声明之前该变量不可用,这种现象就称作暂时性死区; D let 不允许重复修改变量 正确答案: D 解析: 不允许修改的是常量 27.下列关于事件监听器的说法,错误的是 A addEventListener第三个参数为false时,表示事件不会触发 B IE8以下使用attachEvent添加事件监听器 C addEventListener同一个事件可以绑定多个函数 D IE8以下浏览器使用detachEvent移除监听器. 正确答案: A 解析: addEventListener()的第三个参数为false时,代表冒泡阶段 28.下列对事件相关的描述,错误的是 A 文本输入框输入文本结束后会触发onchange事件 B 在表单提交时会触发 onsubmit事件 C 点击文本输入框会多次触发onblur事件 D onmouseover和onmouseenter事件有一定区别 正确答案: C 解析: onblur是焦点离开时触发的事件,点击文本框触发的是onclick事件和onfocus事件 29.var a=10; b=20; c=4; ++b + c + a++ 以下哪个结果是正确的 A 34 B 35 C 36 D 37 正确答案: B 解析: ++ a 先运算 a++ 后运算 30.下列代码输出的结果是 function fn(a) {undefined console.log(a); var a = 2; function a() {}; console.log(a); 1 2 3 4 5 6 7 } fn(2); A undefined和报错 B function a() {}和2 C 报错和 2 D undefined和function a(){}; 正确答案: B 解析: 声明提升,var 要比 function 先提升。 二、多选题(不定项选择)(共20题,每题2分) 1.JavaScript里事件的三个阶段是 A 捕获 B 处于目标阶段 C 冒泡阶段 D 代理阶段 正确答案: A,B,C 解析: 2.for…of与for…in的区别,以下说法正确的是 A for in可以遍历对象,for of不能遍历对象 B for of可以用来遍历map集合,for in不能遍历map集合 C for in遍历数组得到的是数组的下标,for of遍历数组得到的是数组的元素 D for in遍历键 for of遍历值 正确答案: A,B,C,D 解析: ABCD 3.正则对象的方法包括 A test(); B index() C exec() D match() 正确答案: A,C 解析: 正则的对象方法只有2个,其他属于字符串的方法. exec() 找到了返回数组,找不到返回null. test() true或false. 4.事件中会产生哪些兼容问题 A 事件对象的创建 B 事件冒泡 C 浏览器的默认行为 D 事件委托中事件源的获取 正确答案: A,B,C,D 解析: 222111 5.var a=“10”,以下能实现字符串转成数字的是 A a*1 B Number(a) C a-0 D a+0 正确答案: A,B,C 解析: 6.下面哪些属于数组的方法 A sort( ) B push() C indexOf() D join() 正确答案: A,B,C,D 解析: 7.下面哪个不是数组的方法 A map() B split() C filter() D test () 正确答案: B,D 解析: split 是字符串方法 test 是正则方法 8.更改h1标签内容可以用以下哪个属性 A innerText B valueof C innerHTML D value 正确答案: A,C 解析: aaa 9.可以用来遍历字符串的语句有 A for-in B for C for-of D forEach 正确答案: A,B,C 解析: Array.prototype.forEach 为数组对象的方法,不能遍历字符串 10.以下属于ES6新增内容的有 A 严格模式 B 箭头函数 C 解构赋值 D class 正确答案: B,C,D 解析: 严格模式是ES5中就已经存在的。 但是在ES6的很多语法中,默认使用严格模式 11.事件对象中可以阻止事件冒泡的方法或属性为 A e.stopPropagation() B e.preventDefault() C e.cancelBubble = true D event.returnValue = false 正确答案: A,C 解析: B、D为阻止浏览器默认行为的 12.给元素添加事件监听正确的方法有 A oDiv.onclick() B oDiv.attachEvent() C oDiv.addEventListener() D oDiv.detachEvent() 正确答案: B,C 解析: A的正确用法为oDiv.onclick = function () {} D为IE8接触事件绑定的方法 13.以下字符串方法支持正则表达式的有哪些 A indexOf B match C replace D search 正确答案: B,C,D 解析: 字符串的一些方法是和正则一起使用比较多的,比如match()匹配、replace()替换、search()查找 14.如何阻止事件冒泡 A cancelBubble B return true C event.preventDefault D event.stopPropagation() 正确答案: A,D 解析: 浏览器有一些默认行为,比如右键菜单,点击跳转,文字选中效果,拖拽鬼影等,如果出现莫名其妙的问题,也可能是默认行为导致的,阻止默认行为:event.preventDefault和return false,阻止冒泡:cancelBubble和event.stopPropagation();。 15.下面表示鼠标事件的有 A onclick B onmouseover C onmouseout D onmousemove 正确答案: A,B,C,D 解析: onchange是当内容改变时触发,触发调用函数writeIt(),该函数的功能就是将第二个文本框的内容复制给第一个文本框。 16.下面是正则中有意义的简写的有 : A \d B \w C \s D \S 正确答案: A,B,C,D 解析: 正则表达式 17.拖拽效果中,需要用到的事件有 A onmousemove B onmousedown C onmouseup D onclick 正确答案: A,B,C 解析: 拖拽的原理:按下的时候(onmousedown)通过鼠标的坐标和盒子的offsetLeft和offsetTop计算差值offsetX和offsetY;按着盒子拖拽的过程中(onmousemove)从新用新的坐标和刚才计算的差值计算新的left和top,这是拖拽的原理。所以得 :left=ev.clientX-offsetX; top=ev.clientY-offsetY;正确答案就是A B 18.ES6中新增的声明变量的关键字有 A function B let C const D str 正确答案: B,C 解析: let用来声明变量 const用来声明常量 19.解构赋值可以做到以下哪些事 A 一次性可以定义多个变量 B 可以作用在函数的传参上,以对象的方式传递,参数顺序也无须保持一致 C 可以轻松实现两个数的交换 D 可以实现一个函数返回多个结果 正确答案: A,B,C,D 解析: 122 20.下列有关事件对象之中属性的描述,正确的有 A event.clientX、event.clientY:获取鼠标相对于浏览器可视窗口的x轴值和y轴值 B event.pageX、event.pageY类似于event.clientX、event.clientY,但它们使用的是文档坐标 (相对于文档的x轴距离和y轴距离)而非窗口坐标 C event.offsetX、event.offsetY:鼠标相对于用户显示器屏幕左上角的X,Y坐标 D event.screenX、event.screenY:鼠标相对于事件源元素(srcElement)的X,Y坐标 正确答案: A,B 解析: 三大家族的知识要熟悉