JavaScript基础题、练习题、面试题(三)

一、单选题(共30题,每题2分)
得分:2.0分
1.

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

A  

documentElement

B  

rootElement

C  

documentNode

D  

documentRoot

正确答案: A
解析:

html文件的根节点为html,获取方式为document.documentElement

得分:2.0分
2.

关于正则表达式声明6位数字的邮编,以下代码正确的是

A  

var reg = /\d6/;

B  

var reg = \d{6}\;

C  

var reg = /\d{6}/;

D  

var reg = new RegExp("\d{6}");

正确答案: C
解析:

D选项错误,正确写法应为 var reg = new RegExp("\\d{6}")

得分:0.0分
3.

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

A  

<input type="text" onClick="alert(this.value)">

B  

<input type="text" onChange="alert(this.value)">

C  

<input type="text" onChange="alert(text.value)">

D  

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

正确答案: B
解析:

onchange事件,在文本框内容发生变化切光标离开时触发

得分:2.0分
4.

下列哪些不是es6中新增的:

A  

Objec.assign

B  

Array.from

C  

forEach

D  

for of 循环

正确答案: C
解析:

forEach 是es5的

得分:2.0分
5.

阻止事件冒泡,使用以下哪个方法

A  

stopPropagation()

B  

preventDefault()

C  

cancelBubble = false

D  

return false

正确答案: A
解析:

得分:2.0分
6.

阻止浏览器默认行为,使用以下哪个方法

A  

stopPropagation()

B  

preventDefault()

C  

cancelBubble = false

D  

return true

正确答案: B
解析:

D

得分:0.0分
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

得分:2.0分
8.

下列对象或数组的创建方式错误的是

A  

var obj = { };

B  

var obj = { [ ] }

C  

var obj = [ { } ]

D  

var obj = { age:30 }

正确答案: B
解析:

得分:2.0分
9.

下面可以获取浏览器在卷动后,隐藏的文档部分的高度的属性是

A  

window.body.scrollTop

B  

document.body.scrollTop;

C  

document.scrolTop;

D  

documentElement.body.scrollTop

正确答案: B
解析:

基础属性

得分:2.0分
10.

下列对的对常量的描述或定义不对的是

A  

常量名只能用大写

B  

const PI = 3.11;

C  

const pi = 3.14

D  

常量定义后不能被修改

正确答案: A
解析:

得分:2.0分
11.

在HTML页面中,下列选项不属于鼠标相关事件的是

A  

onclick

B  

onmouseover

C  

onmousedown

D  

onchange

正确答案: D
解析:

得分:2.0分
12.

在HTML页面中,下列选项不属于键盘相关事件的是

A  

onkeyup

B  

onkeydown

C  

oncontextmenu

D  

onkeypress

正确答案: C
解析:

得分:2.0分
13.

JavaScript是运行在哪里的脚本语言

A  

server端(服务器端)

B  

web端(浏览器端)

C  

在服务器运行后,把结果返回到客服端

D  

在客户端运行后,把结果返回到服务器

正确答案: B
解析:

js就是运行在浏览器中的脚本语言。

得分:2.0分
14.

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

A  

Number()

B  

parseInt()

C  

whoisNaN()

D  

isNaN()

正确答案: D
解析:

应记忆的方法

得分:2.0分
15.

下面哪个方法可以匹配数组是否含有某个值

A  

sort()

B  

push()

C  

join()

D  

indexOf()

正确答案: D
解析:

得分:2.0分
16.

回车键的keyCode值是 ?

A  

12

B  

13

C  

32

D  

33

正确答案: B
解析:

开发时如果忘记了,可以console.log()进行确认

得分:0.0分
17.

以下能获取到所有子节点(包括文字节点)的属性是 :

A  

firstElementChild

B  

children

C  

childNodes

D  

attributes

正确答案: C
解析:

A、获取第一个元素节点

B、获取所有元素子节点

C、获取所有子节点,包含文本节点

D、获取所有属性节点

得分:0.0分
18.

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

得分:2.0分
19.

以下哪个事件不存在

A  

onclick

B  

onblur

C  

onlook

D  

oninput

正确答案: C
解析:

A、点击事件

B、焦点离开事件

D、输入框输入事件

得分:2.0分
20.

在HTML页面中包含如下所示代码,则编写Javascript函数判断是否按下键盘上的回车键正确的编码是 (回车键的键盘码是13)<input name="password"; type="text" onkeydown="myKeyDown()">

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说明按下了回车键

得分:2.0分
21.

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

A  

fouce

B  

unload

C  

mouseover

D  

onblur

正确答案: D
解析:

onblur当失去焦点时候触发,聚焦是onfocus,和onblur相反的事件

得分:2.0分
22.

下列哪个不是javascript中的数据类型

A  

string

B  

boolean

C  

undefined

D  

num

正确答案: D
解析:

数据类型分为两大类:

基本数据类型:string、number、undefined、boolean、null

复合数据类型:array、function、json……

得分:2.0分
23.

使用 JavaScript 向网页中输出<h1>hello</h1>,以下代码中可行的是

A  

<script type="text/javascript">document.write(<h1>hello</h1>);</script>

B  

<script type="text/javascript">document.write("<h1>hello</h1>");</script>

C  

<script type="text/javascript"> <h1>hello</h1></script>

D  

<h1><script type="text/javascript">document.write("hello");</script></h1>

正确答案: B
解析:

document.write()方法可以打印节点到页面显示,参数是字符串,如有标签需要写完整。document.write("<h1>hello</h1>");正确

得分:2.0分
24.

关于mouseenter的说法,正确的是

A  

与mouseup效果相同

B  

当鼠标指针进入元素时,会发生mouseenter事件

C  

和mouseover完全没有区别

D  

与mousemove效果相同

正确答案: B
解析:

mouseover效果相同,但是比mouseover好,不会引起冒泡

得分:2.0分
25.

下列代码的执行结果肯定不会是document.write(parseInt(Math.random()*3))

A  

1

B  

0

C  

2

D  

3

正确答案: D
解析:

Math.random()*3可以生成0-2.999但是不包含3的随机数,parseInt()取整后就是0-2的整数。

得分:0.0分
26.

如果今天是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开始计数的

得分:2.0分
27.

下列let声明变量说法有误的一项是

A  

let在某个{}内部使用时,外部不能访问该let声明的变量

B  

用 let 声明变量没有声明提升

C  

let声明的变量, 变量声明之前该变量不可用,这种现象就称作暂时性死区;

D  

let 不允许重复修改变量

正确答案: D
解析:

不允许修改的是常量

得分:2.0分
28.

下列代码的执行结果是 var date = new Date(2016,12,11);注意 : 如果构造函数Date的参数是数值, 那么月份就从0开始 document.write(date.getFullYear() + " "); document.write(date.getMonth());

A  

2016  12

B  

2017  11

C  

2017  0

D  

2016  0

正确答案: C
解析:

我们为日期对象设置了一个特定的日期 (2008 年 8 月 9 日):

var myDate=new Date()
myDate.setFullYear(2008,7,9)

表示月份的参数介于 0 到 11 之间。也就是说,如果希望把月设置为 8 月,则参数应该是 7。

所以上题:var date = new Date(2016,12,11);就是想设置月份为0月份,16年12月的下一个月就是17年了,所以是2017 0

得分:2.0分
29.

下列代码的执行结果是 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 = num1*num2+3为 2*true+3(true会隐式转换为1),结果为5

得分:0.0分
30.

正则表达式: /^[a-zA-Z]\w{4,9}$/ 代表什么意思

A  

字母开头,内容只能包含数字字母下划线,总长度5至10之间

B  

字母开头,内容必须包含数字字母下划线,总长度4至9之间

C  

非数字开头,内容任意,总长度5至10

D  

非数字开头,内容任意,总长度4至9

正确答案: A
解析:

/[a-zA-Z]/ 字符类代表任意字母

\w代表任意数字字母下划线

{n,m}代码前边的字符至少重复n次,最多重复m次

二、多选题(不定项选择)(共20题,每题2分)
得分:2.0分
1.

下面表示定时器的有

A  

keyframes

B  

setInterval

C  

setTimeOut

D  

animate

正确答案: B,C
解析:

111

得分:2.0分
2.

正则对象的方法包括

A  

test();

B  

index()

C  

exec()

D  

match()

正确答案: A,C
解析:

正则的对象方法只有2个,其他属于字符串的方法.

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

test() true或false.


得分:2.0分
3.

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

A  

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

B  

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

C  

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

D  

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

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

33

得分:2.0分
4.

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

得分:0.0分
5.

下面哪些是全局方法

A  

prompt()

B  

match()

C  

alert()

D  

confirm()

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

uuu

得分:2.0分
6.

下面哪些属于数组的方法

A  

sort( )

B  

push()

C  

indexOf()

D  

join()

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

得分:2.0分
7.

下面哪个不是数组的方法

A  

map()

B  

split()

C  

filter()

D  

test ()

正确答案: B,D
解析:

split 是字符串方法 test 是正则方法

得分:2.0分
8.

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

A  

innerText

B  

valueof

C  

innerHTML

D  

value

正确答案: A,C
解析:

aaa

得分:2.0分
9.

字符串的操作方法有

A  

indexOf

B  

lastIndexOf

C  

charAt

D  

charCodeAt

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

String.fromCodePoint(97)  ===> a

String.fromCharCode( 65)  ===> A

得分:2.0分
10.

给元素添加事件监听正确的方法有

A  

oDiv.onclick()

B  

oDiv.attachEvent()

C  

oDiv.addEventListener()

D  

oDiv.detachEvent()

正确答案: B,C
解析:

A的正确用法为oDiv.onclick = function () {}

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

得分:2.0分
11.

以下字符串方法支持正则表达式的有哪些

A  

indexOf

B  

match

C  

replace

D  

search

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

字符串的一些方法是和正则一起使用比较多的,比如match()匹配、replace()替换、search()查找

得分:0.0分
12.

假设有一输入框的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()方法,错误

得分:0.0分
13.

如何阻止事件冒泡

A  

cancelBubble

B  

return true

C  

event.preventDefault

D  

event.stopPropagation()

正确答案: A,D
解析:

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

得分:2.0分
14.

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

A  

onmousemove

B  

onmousedown

C  

onmouseup

D  

onclick

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

拖拽的原理:按下的时候(onmousedown)通过鼠标的坐标和盒子的offsetLeft和offsetTop计算差值offsetXoffsetY;按着盒子拖拽的过程中(onmousemove)从新用新的坐标和刚才计算的差值计算新的left和top,这是拖拽的原理。所以得 :left=ev.clientX-offsetX;  top=ev.clientY-offsetY;正确答案就是A B

得分:0.0分
15.

关于  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之中的方法

得分:2.0分
16.

下面哪些方法不是正则的方法

A  

search()

B  

match ()

C  

replace ( )

D  

test ()

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

ABC都是字符串方法

得分:0.0分
17.

判断str是否含有字符串"abc",以下不正确的是

A  

str.repl(/abc/)!=-1

B  

str.indexOf('abc') >= 0

C  

str=='abc'

D  

'abc'.includes(str)

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

A选项:字符串没有index()方法,错误;

B选项:indexOf()就是检测数组是否含有某个数的,有返回下标,没有返回-1,正确选项

C选项:str=='abc'这个是检测完全匹配的,不能检测到是否包含有,这个写法要完全匹配才正确,所以错误

D选项:字符串没有includes()方法,这个方法是数组的方法,错误

得分:2.0分
18.

ES6中新增的声明变量的关键字有

A  

function

B  

let

C  

const

D  

str

正确答案: B,C
解析:

let用来声明变量

const用来声明常量


得分:2.0分
19.

解构赋值可以做到以下哪些事

A  

一次性可以定义多个变量

B  

可以作用在函数的传参上,以对象的方式传递,参数顺序也无须保持一致

C  

可以轻松实现两个数的交换

D  

可以实现一个函数返回多个结果

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

122

得分:2.0分
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
解析:

三大家族的知识要熟悉

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注