2020-10-22

it2025-08-02  6

笔试题(二)

一、单选题(共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 解析: 三大家族的知识要熟悉

最新回复(0)