笔试题(二)
一、单选题(共30题,每题2分) 1. 下列关于事件委托说法错误的是
A 事件委托可以解决事件绑定程序过多的问题
B 事件委托利用了事件捕获原理
C 事件委托可以提高代码性能
D 事件委托可以应用在click,onmousedown事件中
正确答案: B 解析: 事件委托利用的是事件冒泡的原理
什么属性用于获取 HTML 文件的根节点
A documentElement
B rootElement
C documentNode
D documentRoot
正确答案: A 解析: html文件的根节点为html,获取方式为document.documentElement
以下关于Javascript中事件的描述中,不正确的是
A click——鼠标单击事件
B focus——获取焦点事件
C mouseover——鼠标指针移动到事件源对象上时触发的事件
D change——选择字段时触发的事件
正确答案: D 解析: change事件为input内容发生改变时触发的事件。
根据input的type属性值不同,具体的触发时机也不尽相同
下列哪些不是es6中新增的:
A Objec.assign
B Array.from
C forEach
D for of 循环
正确答案: C 解析: forEach 是es5的
阻止事件冒泡,使用以下哪个方法 A stopPropagation() B preventDefault() C cancelBubble = false D return false 正确答案: A 解析:
下列对象或数组的创建方式错误的是 A var obj = { }; B var obj = { [ ] } C var obj = [ { } ] D var obj = { age:30 } 正确答案: B 解析:
下面可以获取浏览器在卷动后,隐藏的文档部分的高度的属性是
A window.body.scrollTop
B document.body.scrollTop;
C document.scrolTop;
D documentElement.body.scrollTop
正确答案: B 解析: 基础属性
下列对的对常量的描述或定义不对的是 A 常量名只能用大写 B const PI = 3.11; C const pi = 3.14 D 常量定义后不能被修改 正确答案: A 解析: 得分:2.0分 9. 在HTML页面中,下列选项不属于键盘相关事件的是 A onkeyup B onkeydown C oncontextmenu D onkeypress 正确答案: C 解析:
下面哪个事件属性可以获取鼠标光标到页面可视区(浏览器边框)水平坐标
A clientX
B offsetX
C pageX
D screenX
正确答案: A 解析: 基本属性
我想要获取当前的日期(如当前日期为2018年12月 10 日) , 在日期对象中用以下哪个方法可以获取到 10 ?
A getDate()
B getDay()
C getMonth()
D getTime()
正确答案: A 解析: 日期对象基础API
分析下面的JavaScript代码段,输出结果是 var a=15.59; document.write(Math.round(a)) A 15 B 16 C 15.5 D 15.4 正确答案: B 解析:
以下声明变量错误的是
A var a;
B let a;
C const a;
D function a;
正确答案: D 解析: A为ES5声明变量,B、C为ES6声明变量/常量方式
D为错误选项
以下选项中哪个是正则的量词 :
A 100
B num
C +
D .
正确答案: C 解析: +代表其前边的字符重复1~无限多次
以下属于正则的方法有
A text()
B replace()
C test()
D match()
正确答案: C 解析: 该方法用于检测参数字符串是否与正则表达式匹配
以下哪些属性不是事件对象event的属性
A offsetX
B clientX
C offsetLeft
D target
正确答案: C 解析: C、实时获取元素针对于offsetParent的left坐标
以下正则中不可以验证数字的是
A /[0-9]/
B /\D/
C /0|1|2|3|4|5|6|7|8|9/
D /\d/
正确答案: B 解析: \D匹配的是非数字
“hello”.repeat(3)的执行结果是
A hello
B hellooo
C helloooo
D hellohellohello
正确答案: D 解析: repeat()的功能是将字符串重复参数指定的次数
html文档中怎么区分节点对象的节点类型
A typeof
B type
C nodeType
D nodeName
正确答案: C 解析: nodeType 属性返回以数字值返回指定节点的节点类型。
如果节点是元素节点,则 nodeType 属性将返回 1。
如果节点是属性节点,则 nodeType 属性将返回 2。
如果是文本内容,则 nodeType 属性将返回 3。
下列代码的执行结果是 var arr = [1,11,2,22,3,4]; arr.sort(); document.write(arr);
A 1,11,2,22,3,4
B 1,2,3,4,11,22
C 22,11,4,3,2,1
D 报错
正确答案: A 解析: arr.sort();直接用,不能对超过10以上的数字排序,所以会得:1,11,2,22,3,4
下列代码的执行结果是 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(减号会进行隐式转换)
在Javascript语言中,当元素失去了焦点时激发的事件是
A fouce
B unload
C mouseover
D onblur
正确答案: D 解析: onblur当失去焦点时候触发,聚焦是onfocus,和onblur相反的事件
有var obj ={ name:”王大锤”, skill:”逗比”, logo:”日和漫画”} 使用循环将对象中的属性值依次取出并打印正确的是
A for(var i=0; i<obj.length; i++){ console.log(obj[i]); }
B for(var i=0; i<obj.length; i++){ console.log(obj.index); }
C for(var attr in obj){ console.log(obj[attr]) }
D return
正确答案: C 解析: 对象没有长度length,所以不能用for循环,需要用for in遍历。故A B错误,C正确
下面的 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设置为空。
下列代码的执行结果为
function fn(){
console.log("world")};
fn();
var fn = “hello”;
A “hello”
B “world”
C undefined
D fn is not function
正确答案: B 解析: var fn被提升到最用于最开始的位置
函数fn被提升
此时fn是函数,可以被执行,打印world
最后才给fn赋值为hello
下列代码输出的结果是
var y = 1;
var x = y = typeof x;
console.log(x);
A undefined
B 1
C y
D 报错
正确答案: A 解析: 在typeof x时,x只是被声明,但是没有被赋值
下列let声明变量说法有误的一项是
A let在某个{}内部使用时,外部不能访问该let声明的变量
B 用 let 声明变量没有声明提升
C let声明的变量, 变量声明之前该变量不可用,这种现象就称作暂时性死区;
D let 不允许重复修改变量
正确答案: D 解析: 不允许修改的是常量
字符串的match方法的语法格式为:str.match(searchvalue) 或者 str.match(regexp),下列说法错误的是()注:RegExp是正则的构造函数
A 如果regexp参数不是RegExp对象,则需要首先把它传递给RegExp构造函数,将其转换为RegExp对象
B 函数的返回值存放匹配结果的数组。该数组的内容依赖于regexp是否具有全局标志g
C 全局匹配返回的数组的内容与非全局匹配返回的数组内容是一样的
D 代码’1abc2qwe3’.match(/\d+/g); 将找出字符串中的所有数字
正确答案: C 解析: 全局匹配时,返回所有与regexp匹配的内容,非全局匹配时,第一个元素为匹配内容,后面为分组捕获的内容
运行下面的代码会弹出什么结果 function aaa(){ a = 10; } aaa(); alert(a);
A undefined
B 10
C NaN
D 什么都没有
正确答案: B 解析: 不加var声明的变量是伪全局变量
下列代码的执行结果是
var num1 = 1&&2;
var num2 = true||false;
var result = num1*num2+3;
document.write(result);
A 0
B 4
C 5
D NaN
正确答案: C 解析: var num1 = 1&&2; var num2 = true||false; var result = num1*num2+3 document.write(result);
分开运算:
var num1 = 1&&2;结果为2
var num2 = true||false;结果为true
var result = num1num2+3为 2true+3(true会隐式转换为1),结果为5
二、多选题(不定项选择)(共20题,每题2分)
下列哪个选项可以阻止事件冒泡(考虑兼容情况)
A window.event.cancelBubble=true
B e.preventDefault()
C e.stopPropagation()
D window.event.cancelBubble=false
正确答案: A,C 解析: 兼容IE 和 高级浏览器
实现一个元素的拖拽,至少需要那几个事件,请选择 A onmousedown B onmousemove C onmouseup D onmouseover 正确答案: A,B,C 解析:
下面表示定时器的有
A keyframes
B setInterval
C setTimeOut
D animate
正确答案: B,C 解析: 111
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
对事件委托的说法正确的是
A 所有的事件都可以实现事件委托;
B 减少了事件绑定浏览器重绘的次数,提高了程序的执行效率;
C 减少事件的冗余绑定,节约了事件资源。
D 可以解决动态添加的元素节点无法绑定事件的问题;
正确答案: B,C,D 解析: 33
事件中会产生哪些兼容问题
A 事件对象的创建
B 事件冒泡
C 浏览器的默认行为
D 事件委托中事件源的获取
正确答案: A,B,C,D 解析: 222111
以下表达式能生成1-10(包含1、10)间随机数的是 A Math.floor(Math.random()*9) B Math.ceil(Math.random()*10) C Math.floor(Math.random()*10)+1 D Math.floor(Math.random()*10) 正确答案: B,C 解析: 8. 下面哪些是全局方法
A prompt()
B match()
C alert()
D confirm()
正确答案: A,C,D 解析: uuu
下面哪些属于数组的方法 A sort( ) B push() C indexOf() D join() 正确答案: A,B,C,D 解析:
下面哪个不是数组的方法
A map()
B split()
C filter()
D test ()
正确答案: B,D 解析: split 是字符串方法 test 是正则方法
可以用来遍历字符串的语句有
A for-in
B for
C for-of
D forEach
正确答案: A,B,C 解析: Array.prototype.forEach 为数组对象的方法,不能遍历字符串
以下属于ES6新增内容的有
A 严格模式
B 箭头函数
C 解构赋值
D class
正确答案: B,C,D 解析: 严格模式是ES5中就已经存在的。
但是在ES6的很多语法中,默认使用严格模式
事件对象中可以阻止事件冒泡的方法或属性为
A e.stopPropagation()
B e.preventDefault()
C e.cancelBubble = true
D event.returnValue = false
正确答案: A,C 解析: B、D为阻止浏览器默认行为的
以下字符串方法支持正则表达式的有哪些
A indexOf
B match
C replace
D search
正确答案: B,C,D 解析: 字符串的一些方法是和正则一起使用比较多的,比如match()匹配、replace()替换、search()查找
如何阻止事件冒泡
A cancelBubble
B return true
C event.preventDefault
D event.stopPropagation()
正确答案: A,D 解析: 浏览器有一些默认行为,比如右键菜单,点击跳转,文字选中效果,拖拽鬼影等,如果出现莫名其妙的问题,也可能是默认行为导致的,阻止默认行为:event.preventDefault和return false,阻止冒泡:cancelBubble和event.stopPropagation();。
下面表示鼠标事件的有
A onclick
B onmouseover
C onmouseout
D onmousemove
正确答案: A,B,C,D 解析: onchange是当内容改变时触发,触发调用函数writeIt(),该函数的功能就是将第二个文本框的内容复制给第一个文本框。
下面是正则中有意义的简写的有 :
A \d
B \w
C \s
D \S
正确答案: A,B,C,D 解析:
正则表达式
关于 window 对象表述正确的有
A window.open 方法 可以弹出一个新窗口
B window.location.reload()方法可以用来刷新当前页面
C window.location.href="a.html"的作用都是把当前页面替换成 a.html 页面
D 定义了全局变量 g;可以用 window.g 的方式来存取该变量
正确答案: A,B,C,D 解析: 全部是window之中的方法
解构赋值可以做到以下哪些事
A 一次性可以定义多个变量
B 可以作用在函数的传参上,以对象的方式传递,参数顺序也无须保持一致
C 可以轻松实现两个数的交换
D 可以实现一个函数返回多个结果
正确答案: A,B,C,D 解析: 122
下列有关事件对象之中属性的描述,正确的有
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 解析: 三大家族的知识要熟悉