JavaScript基础试题(3)及答案

javascript基础试题(3)

单选题

  1. 下列关于事件委托说法错误的是 ( B )
    A 事件委托可以解决事件绑定程序过多的问题
    B 事件委托利用了事件捕获原理
    C 事件委托可以提高代码性能
    D 事件委托可以应用在click,onmousedown事件中
    //事件委托利用的是事件冒泡的原理

  2. 关于正则表达式声明6位数字的邮编,以下代码正确的是 ( C )
    A var reg = /\d6/;
    B var reg = \d{6};
    C var reg = /\d{6}/;
    D var reg = new RegExp("\d{6}");
    //D选项错误,正确写法应为 var reg = new RegExp("\d{6}")

  3. 要求用JavaScript实现下面的功能:在一个文本框中内容发生改变后,单击页面的其他部分将弹出一个消息框显示文本框中的内容,下面语句正确的是 ( B )
    A
    B
    C
    D <input type="text"onClick=“alert(value)”>
    //onchange事件,在文本框内容发生变化切光标离开时触发

  4. 阻止浏览器默认行为,使用以下哪个方法 ( B )
    A stopPropagation()
    B preventDefault()
    C cancelBubble = false
    D return true

  5. 下列对象或数组的创建方式错误的是 ( B )
    A var obj = { };
    B var obj = { [ ] }
    C var obj = [ { } ]
    D var obj = { age:30 }

  6. 下面可以获取浏览器在卷动后,隐藏的文档部分的高度的属性是 ( B )
    A window.body.scrollTop
    B document.body.scrollTop;
    C document.scrolTop;
    D documentElement.body.scrollTop

  7. 下面哪个事件属性可以获取鼠标光标到页面可视区(浏览器边框)水平坐标 ( A )
    A clientX
    B offsetX
    C pageX
    D screenX

  8. 分析下面的JavaScript代码段,输出结果是 var a=15.59; document.write(Math.round(a)) ( B )
    A 15
    B 16
    C 15.5
    D 15.4

  9. 以下声明变量错误的是 ( D )
    A var a;
    B let a;
    C const a;
    D function a;
    //A为ES5声明变量,B、C为ES6声明变量/常量方式,D为错误选项

  10. 以下属于正则的方法有 ( C )
    A text()
    B replace()
    C test()
    D match()
    //该方法用于检测参数字符串是否与正则表达式匹配

  11. 回车键的keyCode值是 ?( B )
    A 12
    B 13
    C 32
    D 33

  12. 以下哪些属性不是事件对象event的属性 ( C )
    A offsetX
    B clientX
    C offsetLeft
    D target
    //C、实时获取元素针对于offsetParent的left坐标

  13. html文档中怎么区分节点对象的节点类型 ( C )
    A typeof
    B type
    C nodeType
    D nodeName
    //nodeType 属性返回以数字值返回指定节点的节点类型。如果节点是元素节点,则 nodeType 属性将返回 1。如果节点是属性节点,则 nodeType 属性将返回 2。如果是文本内容,则 nodeType 属性将返回 3。

  14. 下列代码的执行结果是 var arr = [1,11,2,22,3,4]; arr.sort(); document.write(arr); ( A )
    A 1,11,2,22,3,4
    B 1,2,3,4,11,22
    C 22,11,4,3,2,1
    D 报错
    //arr.sort();直接用,不能对超过10以上的数字排序,所以会得:1,11,2,22,3,4

  15. 在HTML页面中包含如下所示代码,则编写Javascript函数判断是否按下键盘上的回车键正确的编码是 (回车键的键盘码是13)<input name=“password”; type=“text” οnkeydοwn=“myKeyDown()”> ( C )
    A function myKeyDown(){ if (window.keyCode13){ alert(“你按下了回车键”)}};
    B function myKeyDown(){ if (document.keyCode
    13){ alert(“你按下了回车键”);}}
    C function myKeyDown(){ if (event.keyCode13){ alert(“你按下了回车键”)}}
    D function myKeyDown(){ if (keyCode
    13){ alert(“你按下了回车键”)}}
    //eyCode是event对象下面的属性,keycode等于13说明按下了回车键

  16. 在Javascript语言中,当元素失去了焦点时激发的事件是 ( D )
    A fouce
    B unload
    C mouseover
    D onblur
    //onblur当失去焦点时候触发,聚焦是onfocus

  17. 下列代码的执行结果是 for(var i = 0;i<10;i++){} document.write(i); ( A )
    A 10
    B 11
    C 9
    D 死循环
    //for(var i = 0;i<10;i++){}
    document.write(i);
    for循环结束,才会执行下一个语句,循环结束的条件就是i=10的时候;

  18. 下列哪个不是javascript中的数据类型 ( D )
    A string
    B boolean
    C undefined
    D num
    //数据类型分为两大类:
    基本数据类型:string、number、undefined、boolean、null
    复合数据类型(引用):array、function、json……

  19. 下列哪个不是Math对象的方法 ( A )
    A sort()
    B floor()
    C random()
    D abs()
    //sort()是数组的方法

  20. 使用 JavaScript 向网页中输出

<h1>hello</h1>

以下代码中可行的是 ( B )

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>
  1. 有var obj ={ name:”王大锤”, skill:”逗比”, logo:”日和漫画”} 使用循环将对象中的属性值依次取出并打印正确的是 ( C )
    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
    //对象没有长度length,所以不能用for循环,需要用for in遍历。故A B错误,C正确

  2. 下列代码的执行结果肯定不会是 ( D )
    document.write(parseInt(Math.random()*3))
    A 1
    B 0
    C 2
    D 3
    //Math.random()获取0-1 1取不到 乘3就是0-3 3取不到

  3. 下列代码的执行结果是 ( A )
    var i = 12;
    var sum =i++ + ++i + ++i*2 + i-- + i–;
    document.write(sum + " " + i);
    A 85 13
    B 84 12
    C 83 11
    D 85 14

  4. 如果今天是2006年5月14日,分析下列JavaScript代码运行后,在网页上显示( D )
    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
    //月份从0开始

  5. 下列代码输出的结果是 ( A )
    var y = 1;
    var x = y = typeof x;
    console.log(x);
    A undefined
    B 1
    C y
    D 报错
    //typeof x时,x只是被声明,但是没有被赋值

  6. 字符串的match方法的语法格式为:str.match(searchvalue) 或者 str.match(regexp),下列说法错误的是()注:RegExp是正则的构造函数 ( C )
    A 如果regexp参数不是RegExp对象,则需要首先把它传递给RegExp构造函数,将其转换为RegExp对象
    B 函数的返回值存放匹配结果的数组。该数组的内容依赖于regexp是否具有全局标志g
    C 全局匹配返回的数组的内容与非全局匹配返回的数组内容是一样的
    D 代码’1abc2qwe3’.match(/\d+/g); 将找出字符串中的所有数字
    //全局匹配时,返回所有与regexp匹配的内容,非全局匹配时,第一个元素为匹配内容,后面为分组捕获的内容

  7. 下列关于事件监听器的说法,错误的是 ( A )
    A addEventListener第三个参数为false时,表示事件不会触发
    B IE8以下使用attachEvent添加事件监听器
    C addEventListener同一个事件可以绑定多个函数
    D IE8以下浏览器使用detachEvent移除监听器.
    //addEventListener()的第三个参数为false时,代表冒泡阶段

  8. 下面的代码段,执行后的输出结果是 var x=“15”; str=x+5; A=parseFloat(str); document.write(A); ( D )
    A 20
    B 20.O
    C NaN
    D 155
    //字符串拼接 15 + 5 结果为 155 转换成数字

  9. 下列代码输出的结果是 ( B )
    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(){};
    //声明提升,var 要比 function 先提升。

  10. 正则表达式: /1\w{4,9}$/ 代表什么意思 ( A )
    A 字母开头,内容只能包含数字字母下划线,总长度5至10之间
    B 字母开头,内容必须包含数字字母下划线,总长度4至9之间
    C 非数字开头,内容任意,总长度5至10
    D 非数字开头,内容任意,总长度4至9
    // /[a-zA-Z]/ 字符类代表任意字母
    // \w代表任意数字字母下划线
    // {n,m}代码前边的字符至少重复n次,最多重复m次

多选题

  1. 实现一个元素的拖拽,至少需要那几个事件,请选择 ( A,B,C )
    A onmousedown
    B onmousemove
    C onmouseup
    D onmouseover

  2. 下面哪些是es6新增的 ( A,B,C,D )
    A 箭头函数
    B 解构赋值
    C let关键字
    D class 定义类

  3. 正则对象的方法包括(A,C)
    A test();
    B index()
    C exec()
    D match()
    //正则的对象方法只有2个,其他属于字符串的方法.exec() 找到了返回数组,找不到返回null.test() true或false.

  4. 以下对严格模式的说法正确的是 ( A,B,C,D )
    A 使用"use strict"定义严格模式
    B 严格模式可以定义在函数的最顶端或程序的最顶端
    C 在严格模式下 在变量a 没有声明时 a = 10 ; 这样的赋值会报错
    D 严格模式执行效率更高

  5. 对事件委托的说法正确的是 ( B,C,D )
    A 所有的事件都可以实现事件委托;
    B 减少了事件绑定浏览器重绘的次数,提高了程序的执行效率;
    C 减少事件的冗余绑定,节约了事件资源。
    D 可以解决动态添加的元素节点无法绑定事件的问题;

  6. 对事件绑定的说法正确的是 ( A,C )
    A 统事件绑定(dom.onclick),不能同时绑定多个同一事件,后面的会覆盖前面的;
    B 利用事件监听不能完成事件的绑定
    C addEventListener()方法可以实现事件的绑定
    D 传统事件触发,只能经过冒泡阶段,不经过捕获阶段;

  7. 事件中会产生哪些兼容问题 ( A,B,C,D )
    A 事件对象的创建
    B 事件冒泡
    C 浏览器的默认行为
    D 事件委托中事件源的获取

  8. 将字符串转成大写和小写的方法是 ( B,C )
    A str.toSmallCase()
    B str.toLowerCase()
    C str.toUpperCase()
    D str.toUpperChars()

  9. 以下表达式能生成1-10(包含1、10)间随机数的是 ( B,C )
    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)

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

  11. 下面哪些属于数组的方法 (A,B,C,D)
    A sort( )
    B push()
    C indexOf()
    D join()

  12. 下面哪个不是数组的方法 ( B,D )
    A map()
    B split()
    C filter()
    D test ()
    //split 是字符串方法 test 是正则方法

  13. 更改h1标签内容可以用以下哪个属性 ( A,C )
    A innerText
    B valueof
    C innerHTML
    D value

  14. 给元素添加事件监听正确的方法有 ( B,C )
    A oDiv.onclick()
    B oDiv.attachEvent()
    C oDiv.addEventListener()
    D oDiv.detachEvent()
    //A的正确用法为oDiv.onclick = function () {}
    //D为IE8接触事件绑定的方法

  15. 以下字符串方法支持正则表达式的有哪些 ( B.C,D )
    A indexOf
    B match
    C replace
    D search
    //字符串的一些方法是和正则一起使用比较多的,比如match()匹配、replace()替换、search()查找

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

  17. 下面表示鼠标事件的有 ( A,B,C,D )
    A onclick
    B onmouseover
    C onmouseout
    D onmousemove

  18. 下面是正则中有意义的简写的有 : ( A.B.C.D )
    A \d
    B \w
    C \s
    D \S

  19. 下面哪些方法不是正则的方法 ( A,B,C )
    A search()
    B match ()
    C replace ( )
    D test ()
    //ABC都是字符串方法

  20. 解构赋值可以做到以下哪些事 (A,B,C,D)
    A 一次性可以定义多个变量
    B 可以作用在函数的传参上,以对象的方式传递,参数顺序也无须保持一致
    C 可以轻松实现两个数的交换
    D 可以实现一个函数返回多个结果


  1. a-zA-Z ↩︎

猜你喜欢

转载自blog.csdn.net/Bob_Yan623/article/details/108692380