JavaScript练习题四

一、单选题(共30题,每题2分)
  
1.什么属性用于获取 HTML 文件的根节点  
A  documentElement  
B  rootElement   
C  documentNode  
D  documentRoot  
正确答案: A
解析:
html文件的根节点为html,获取方式为document.documentElement  
  
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}")  
  
3.以下关于Javascript中事件的描述中,不正确的是  
A  click——鼠标单击事件  
B  focus——获取焦点事件  
C  mouseover——鼠标指针移动到事件源对象上时触发的事件  
D  change——选择字段时触发的事件  
正确答案: D
解析:
change事件为input内容发生改变时触发的事件。  
根据input的type属性值不同,具体的触发时机也不尽相同  
  
4.阻止事件冒泡,使用以下哪个方法
A  stopPropagation()
B  preventDefault()
C  cancelBubble = false
D  return false
正确答案: A
解析:
  
5.阻止浏览器默认行为,使用以下哪个方法  
A  stopPropagation()  
B  preventDefault()  
C  cancelBubble = false  
D  return true  
正确答案: B
解析:
D  
  
6.下列代码执行结果为真的是  
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  
  
7.JavaScript是运行在哪里的脚本语言  
A  server端(服务器端)  
B  web端(浏览器端)  
C  在服务器运行后,把结果返回到客服端  
D  在客户端运行后,把结果返回到服务器  
正确答案: B
解析:
js就是运行在浏览器中的脚本语言。  
  
8.要检测值是否为 NaN,应使用什么函数  
A  Number()  
B  parseInt()  
C  whoisNaN()  
D  isNaN()  
正确答案: D
解析:
应记忆的方法  
  
9.下面哪个方法可以匹配数组是否含有某个值
A  sort()
B  push()
C  join()
D  indexOf()
正确答案: D
解析:
  
10.以下属于正则的方法有  
A  text()  
B  replace()  
C  test()  
D  match()  
正确答案: C
解析:
该方法用于检测参数字符串是否与正则表达式匹配  
  
11.以下能获取到所有子节点(包括文字节点)的属性是 :   
A  firstElementChild  
B  children  
C  childNodes  
D  attributes  
正确答案: C
解析:
A、获取第一个元素节点  
B、获取所有元素子节点  
C、获取所有子节点,包含文本节点  
D、获取所有属性节点  
  
12.以下哪些属性不是事件对象event的属性  
A  offsetX  
B  clientX  
C  offsetLeft  
D  target  
正确答案: C
解析:
C、实时获取元素针对于offsetParent的left坐标  
  
13.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  
  
14.下列代码的执行结果为 function fn(){ console.log( this ) }; fn();  
A  fn  
B  undefined  
C  window  
D  windows  
正确答案: C
解析:
直接调用函数,其内部的this指向全局对象window  
  
15.以下正则中不可以验证数字的是  
A  /[0-9]/  
B  /\D/  
C  /0|1|2|3|4|5|6|7|8|9/  
D  /\d/  
正确答案: B
解析:
\D匹配的是非数字  
  
16.html文档中怎么区分节点对象的节点类型  
A  typeof  
B  type  
C  nodeType  
D  nodeName  
正确答案: C
解析:
nodeType 属性返回以数字值返回指定节点的节点类型。  
如果节点是元素节点,则 nodeType 属性将返回 1。  
如果节点是属性节点,则 nodeType 属性将返回 2。  
如果是文本内容,则 nodeType 属性将返回 3。  
  
17.下列代码的执行结果是 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  
  
18.在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说明按下了回车键  
  
19.下列代码的执行结果是 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的时候;  
  
20.下列哪个不是javascript中的关键字或保留字  
A  class  
B  var  
C  link  
D  instanceof  
正确答案: C
解析:  

关键字是js有特定含义的词汇,保留字是js后面扩展会用的词汇,都不能用来作为变量名和函数名,


关键字是js有特定含义的词汇,保留字是js后面扩展会用的词汇,都不能用来作为变量名和函数名,请查看上图:21.使用 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>");正确  
  
22.关于mouseenter的说法,正确的是  
A  与mouseup效果相同  
B  当鼠标指针进入元素时,会发生mouseenter事件  
C  和mouseover完全没有区别  
D  与mousemove效果相同  
正确答案: B
解析:
和mouseover效果相同,但是比mouseover好,不会引起冒泡  
  
23.下面的 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设置为空。  
  
24.下列代码的执行结果肯定不会是  
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的整数。  
  
25.如果今天是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开始计数的  
  
26.执行下面程序片段的效果是   
<a href='http://210.43.0.10'>千锋培训</a>   
  
if( window.event.srcElement.tagName=='A'&&window.event.shiftKey ) {  
           window.event.returnValue==false;  
}  
A  在IE中,点击'千锋培训'超链接  总能  打开'千锋培训'网站  
B  在IE中,点击'千锋培训'超链接  不能  打开'千锋培训'网站  
C  在IE中,点击'千锋培训'超链接  能  打开'千锋培训'网站,按下shift键点击'千锋培训'超链接  不能  打开'千锋培训'网站  
D  在IE中,点击'千锋培训'超链接  不能  打开'千锋培训'网站,按下shift键点击'千锋培训'超链接  能  打开'千锋培训'网站  
正确答案: C
解析:
C  
  
27.字符串的match方法的语法格式为:str.match(searchvalue) 或者 str.match(regexp),下列说法错误的是()注:RegExp是正则的构造函数  
A  如果regexp参数不是RegExp对象,则需要首先把它传递给RegExp构造函数,将其转换为RegExp对象  
B  函数的返回值存放匹配结果的数组。该数组的内容依赖于regexp是否具有全局标志g  
C  全局匹配返回的数组的内容与非全局匹配返回的数组内容是一样的  
D  代码'1abc2qwe3'.match(/\d+/g); 将找出字符串中的所有数字  
正确答案: C
解析:
全局匹配时,返回所有与regexp匹配的内容,非全局匹配时,第一个元素为匹配内容,后面为分组捕获的内容  
  
28.下列对事件相关的描述,错误的是  
A  文本输入框输入文本结束后会触发onchange事件  
B  在表单提交时会触发 onsubmit事件  
C  点击文本输入框会多次触发onblur事件  
D  onmouseover和onmouseenter事件有一定区别  
正确答案: C
解析:
onblur是焦点离开时触发的事件,点击文本框触发的是onclick事件和onfocus事件  
  
29.有如下代码: var arr = new Array(9); arr[0]=1; arr[2]=2; 该数组的length属性值为  
A  2  
B  10  
C  8  
D  9  
正确答案: D
解析:
因为new Array(9)表示数组共有9项 , arr[n] = xxx 表示对数组某一项赋值。  
  
30.下列代码的执行结果是   
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  
二、多选题(不定项选择)(共20题,每题2分)
  
1.JavaScript里事件的三个阶段是
A  捕获
B  处于目标阶段
C  冒泡阶段
D  代理阶段
正确答案: A,B,C
解析:
  
2.下列哪个选项可以阻止事件冒泡(考虑兼容情况)  
A  window.event.cancelBubble=true  
B  e.preventDefault()  
C  e.stopPropagation()  
D  window.event.cancelBubble=false  
正确答案: A,C
解析:
兼容IE 和 高级浏览器  
  
3.下面表示定时器的有  
A  keyframes  
B  setInterval  
C  setTimeOut  
D  animate  
正确答案: B,C
解析:
111  
  
4.正则对象的方法包括  
A  test();  
B  index()  
C  exec()  
D  match()  
正确答案: A,C
解析:
正则的对象方法只有2个,其他属于字符串的方法.  
exec() 找到了返回数组,找不到返回null.  
test() true或false.  
  
  
5.以下对严格模式的说法正确的是  
A  使用"use strict"定义严格模式  
B  严格模式可以定义在函数的最顶端或程序的最顶端  
C  在严格模式下 在变量a 没有声明时 a = 10 ; 这样的赋值会报错  
D  严格模式执行效率更高  
正确答案: A,B,C,D
解析:
111  
  
6.对事件委托的说法正确的是  
A  所有的事件都可以实现事件委托;  
B  减少了事件绑定浏览器重绘的次数,提高了程序的执行效率;  
C  减少事件的冗余绑定,节约了事件资源。  
D  可以解决动态添加的元素节点无法绑定事件的问题;  
正确答案: B,C,D
解析:
33  
  
7.事件中会产生哪些兼容问题  
A  事件对象的创建  
B  事件冒泡  
C  浏览器的默认行为  
D  事件委托中事件源的获取  
正确答案: A,B,C,D
解析:
222111  
  
8.以下表达式能生成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
解析:
  
9.var a="10",以下能实现字符串转成数字的是
A  a*1
B  Number(a)
C  a-0
D  a+0
正确答案: A,B,C
解析:
  
10.更改h1标签内容可以用以下哪个属性  
A  innerText  
B  valueof  
C  innerHTML  
D  value  
正确答案: A,C
解析:
aaa  
  
11.可以用来遍历字符串的语句有  
A  for-in  
B  for  
C  for-of  
D  forEach  
正确答案: A,B,C
解析:
Array.prototype.forEach 为数组对象的方法,不能遍历字符串  
  
12.以下属于ES6新增内容的有  
A  严格模式  
B  箭头函数  
C  解构赋值  
D  class  
正确答案: B,C,D
解析:
严格模式是ES5中就已经存在的。  
但是在ES6的很多语法中,默认使用严格模式  
  
13.事件对象中可以阻止事件冒泡的方法或属性为  
A  e.stopPropagation()  
B  e.preventDefault()  
C  e.cancelBubble = true  
D  event.returnValue = false  
正确答案: A,C
解析:
B、D为阻止浏览器默认行为的  
  
14.假设有一输入框的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()方法,错误  
  
15.如何阻止事件冒泡   
A  cancelBubble  
B  return true  
C  event.preventDefault  
D  event.stopPropagation()  
正确答案: A,D
解析:
浏览器有一些默认行为,比如右键菜单,点击跳转,文字选中效果,拖拽鬼影等,如果出现莫名其妙的问题,也可能是默认行为导致的,阻止默认行为:event.preventDefault和return false,阻止冒泡:cancelBubble和event.stopPropagation();。  
  
16.下面是正则中有意义的简写的有 :   
A  \d  
  
B  \w  
C  \s  
  
D  \S  
正确答案: A,B,C,D
解析:  

正则表达式   
   
  
  
17.关于  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之中的方法  
  
18.下面哪些方法不是正则的方法  
A  search()  
B  match ()  
C  replace ( )  
D  test ()  
正确答案: A,B,C
解析:
ABC都是字符串方法  
  
19.判断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()方法,这个方法是数组的方法,错误  
  
20.ES6中新增的声明变量的关键字有  
A  function   
B  let  
C  const  
D  str  
正确答案: B,C
解析:
let用来声明变量  
const用来声明常量 

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BUG_Jia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值