js基础试题及答案(一)

js基础试题及答案(一)

正确答案: 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 解析: 三大家族的知识要熟悉

相关典藏

网易云为什么那么多歌没有版权
365bet博彩官网

网易云为什么那么多歌没有版权

📅 08-21 👁️‍🗨️ 5873
如何选口琴
365bet直播

如何选口琴

📅 08-08 👁️‍🗨️ 1533
湖南富豪版图更新,这5城正批量造富
365bet博彩官网

湖南富豪版图更新,这5城正批量造富

📅 08-11 👁️‍🗨️ 5522