JavaScript 基础练习(三)

该博客围绕 JavaScript 基础练习展开,包含单选题和多选题。涉及事件对象属性、事件委托、HTML 根节点获取、ES6 新增内容等知识点,还对各题进行了解析,帮助读者掌握 JavaScript 基础概念和方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript 基础练习(三)
1.
下列哪些属性不是事件对象event的属性

A
clientX

B
offsetX

C
offsetLeft

D
target

正确答案: C
解析:
offsetLeft为元素针对offsetParent的水平坐标,并不是事件对象中的鼠标位置

下列关于事件委托说法错误的是

A
事件委托可以解决事件绑定程序过多的问题

B
事件委托利用了事件捕获原理

C
事件委托可以提高代码性能

D
事件委托可以应用在click,onmousedown事件中

正确答案: B
解析:
事件委托利用的是事件冒泡的原理

什么属性用于获取 HTML 文件的根节点

A
documentElement

B
rootElement

C
documentNode

D
documentRoot

正确答案: A
解析:
html文件的根节点为html,获取方式为document.documentElement

要求用JavaScript实现下面的功能:在一个文本框中内容发生改变后,单击页面的其他部分将弹出一个消息框显示文本框中的内容,下面语句正确的是

A

B

C

D
<input type="text"onClick=“alert(value)”>

正确答案: B
解析:
onchange事件,在文本框内容发生变化切光标离开时触发

下列哪些不是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
stopPropagation()

B
preventDefault()

C
cancelBubble = false

D
return true

正确答案: B
解析:
D

下列对象或数组的创建方式错误的是
A
var obj = { };
B
var obj = { [ ] }
C
var obj = [ { } ]
D
var obj = { age:30 }
正确答案: B
解析:

在HTML页面中,下列选项不属于鼠标相关事件的是
A
onclick
B
onmouseover
C
onmousedown
D
onchange
正确答案: D
解析:

下面哪个事件属性可以获取鼠标光标到页面可视区(浏览器边框)水平坐标

A
clientX

B
offsetX

C
pageX

D
screenX

正确答案: A
解析:
基本属性

要检测值是否为 NaN,应使用什么函数

A
Number()

B
parseInt()

C
whoisNaN()

D
isNaN()

正确答案: D
解析:
应记忆的方法

下面哪个方法可以匹配数组是否含有某个值
A
sort()
B
push()
C
join()
D
indexOf()
正确答案: D
解析:

以下选项中哪个是正则的量词 :

A
100

B
num

C
+

D
.

正确答案: C
解析:
+代表其前边的字符重复1~无限多次

以下属于正则的方法有

A
text()

B
replace()

C
test()

D
match()

正确答案: C
解析:
该方法用于检测参数字符串是否与正则表达式匹配

0.1+0.7 == 0.8 (0.1 + 0.7 计算结果是浮点数)

A
true

B
false

C
Infinity

D
NaN

正确答案: B
解析:
由于计算机存储数字的特点,导致浮点数的计算存在误差。

0.1+0.7 === 0.7999999999999999

所以结果为false

下列代码的执行结果为 function fn(){ console.log( this ) }; fn();

A
fn

B
undefined

C
window

D
windows

正确答案: C
解析:
直接调用函数,其内部的this指向全局对象window

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

在Javascript语言中,当元素失去了焦点时激发的事件是

A
fouce

B
unload

C
mouseover

D
onblur

正确答案: D
解析:
onblur当失去焦点时候触发,聚焦是onfocus,和onblur相反的事件

下列代码的执行结果是 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的时候;

下列哪个不是Math对象的方法

A
sort()

B
floor()

C
random()

D
abs()

正确答案: A
解析:
sort()是数组的方法

使用 JavaScript 向网页中输出

hello

,以下代码中可行的是

A

B

C

D

正确答案: B
解析:
document.write()方法可以打印节点到页面显示,参数是字符串,如有标签需要写完整。document.write(“

hello

”);正确

下列代码的执行结果为

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

如果今天是2006年5月14日,分析下列JavaScript代码运行后,在网页上显示()

var now = new Date();

var year = now.getFullYear();

var month = now.getMonth();

var date = now.getDate();

document.write(year+" “+month+” "+date);

A
2006 05 14

B
2006 5 14

C
2006 04 14

D
2006 4 14

正确答案: D
解析:
月份是从0开始计数的

下列代码输出的结果是

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匹配的内容,非全局匹配时,第一个元素为匹配内容,后面为分组捕获的内容

下列关于事件监听器的说法,错误的是

A
addEventListener第三个参数为false时,表示事件不会触发

B
IE8以下使用attachEvent添加事件监听器

C
addEventListener同一个事件可以绑定多个函数

D
IE8以下浏览器使用detachEvent移除监听器.

正确答案: A
解析:
addEventListener()的第三个参数为false时,代表冒泡阶段

给定正则表达式/^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$/,满足此匹配条件的字符串是

A
“010”

B
“0010”

C
“127”

D
“10000”

正确答案: C
解析:
此题考查正则表达式中的选择语句

下列代码输出的结果是

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 先提升。

二、多选题(不定项选择)(共20题,每题2分)

下面哪些是es6新增的

A
箭头函数

B
解构赋值

C
let关键字

D
class 定义类

正确答案: A,B,C,D
解析:
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
test();

B
index()

C
exec()

D
match()

正确答案: A,C
解析:
正则的对象方法只有2个,其他属于字符串的方法.

exec() 找到了返回数组,找不到返回null.

test() true或false.

对事件委托的说法正确的是

A
所有的事件都可以实现事件委托;

B
减少了事件绑定浏览器重绘的次数,提高了程序的执行效率;

C
减少事件的冗余绑定,节约了事件资源。

D
可以解决动态添加的元素节点无法绑定事件的问题;

正确答案: B,C,D
解析:
33

对事件绑定的说法正确的是

A
传统事件绑定(dom.onclick),不能同时绑定多个同一事件,后面的会覆盖前面的;

B
利用事件监听不能完成事件的绑定

C
addEventListener()方法可以实现事件的绑定

D
传统事件触发,只能经过冒泡阶段,不经过捕获阶段;

正确答案: A,C
解析:
1111

将字符串转成大写和小写的方法是
A
str.toSmallCase()
B
str.toLowerCase()
C
str.toUpperCase()
D
str.toUpperChars()
正确答案: B,C
解析:

以下表达式能生成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
解析:

var a=“10”,以下能实现字符串转成数字的是
A
a*1
B
Number(a)
C
a-0
D
a+0
正确答案: A,B,C
解析:

下面哪些属于数组的方法
A
sort( )
B
push()
C
indexOf()
D
join()
正确答案: A,B,C,D
解析:

下面哪个不是数组的方法

A
map()

B
split()

C
filter()

D
test ()

正确答案: B,D
解析:
split 是字符串方法 test 是正则方法

更改h1标签内容可以用以下哪个属性

A
innerText

B
valueof

C
innerHTML

D
value

正确答案: A,C
解析:
aaa

字符串的操作方法有

A
indexOf

B
lastIndexOf

C
charAt

D
charCodeAt

正确答案: A,B,C,D
解析:
String.fromCodePoint(97) ===> a

String.fromCharCode( 65) ===> A

以下属于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
oDiv.onclick()

B
oDiv.attachEvent()

C
oDiv.addEventListener()

D
oDiv.detachEvent()

正确答案: B,C
解析:
A的正确用法为oDiv.onclick = function () {}

D为IE8接触事件绑定的方法

假设有一输入框的DOM名称为otxt,以下能获取输入框值(value)的是

A
otxt.getAttribute(“value”)

B
otxt.value

C
otxt[“value”]

D
otxt.getValue()

正确答案: A,B,C
解析:
getAttribute()是获取属性值的方法,因为value就是属性值,otxt.value和otxt[“value”]都可以获取属性值,所以ABC正确,D选项,没有getValue()方法,错误

如何阻止事件冒泡

A
cancelBubble

B
return true

C
event.preventDefault

D
event.stopPropagation()

正确答案: A,D
解析:
浏览器有一些默认行为,比如右键菜单,点击跳转,文字选中效果,拖拽鬼影等,如果出现莫名其妙的问题,也可能是默认行为导致的,阻止默认行为:event.preventDefault和return false,阻止冒泡:cancelBubble和event.stopPropagation();。

拖拽效果中,需要用到的事件有

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

关于 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
search()

B
match ()

C
replace ( )

D
test ()

正确答案: A,B,C
解析:
ABC都是字符串方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值