单选题
-
下列关于事件委托说法错误的是 ( B )
A 事件委托可以解决事件绑定程序过多的问题
B 事件委托利用了事件捕获原理
C 事件委托可以提高代码性能
D 事件委托可以应用在click,onmousedown事件中
//事件委托利用的是事件冒泡的原理 -
关于正则表达式声明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}") -
要求用JavaScript实现下面的功能:在一个文本框中内容发生改变后,单击页面的其他部分将弹出一个消息框显示文本框中的内容,下面语句正确的是 ( B )
A
B
C
D <input type="text"onClick=“alert(value)”>
//onchange事件,在文本框内容发生变化切光标离开时触发 -
阻止浏览器默认行为,使用以下哪个方法 ( B )
A stopPropagation()
B preventDefault()
C cancelBubble = false
D return true -
下列对象或数组的创建方式错误的是 ( B )
A var obj = { };
B var obj = { [ ] }
C var obj = [ { } ]
D var obj = { age:30 } -
下面可以获取浏览器在卷动后,隐藏的文档部分的高度的属性是 ( B )
A window.body.scrollTop
B document.body.scrollTop;
C document.scrolTop;
D documentElement.body.scrollTop -
下面哪个事件属性可以获取鼠标光标到页面可视区(浏览器边框)水平坐标 ( A )
A clientX
B offsetX
C pageX
D screenX -
分析下面的JavaScript代码段,输出结果是 var a=15.59; document.write(Math.round(a)) ( B )
A 15
B 16
C 15.5
D 15.4 -
以下声明变量错误的是 ( D )
A var a;
B let a;
C const a;
D function a;
//A为ES5声明变量,B、C为ES6声明变量/常量方式,D为错误选项 -
以下属于正则的方法有 ( C )
A text()
B replace()
C test()
D match()
//该方法用于检测参数字符串是否与正则表达式匹配 -
回车键的keyCode值是 ?( B )
A 12
B 13
C 32
D 33 -
以下哪些属性不是事件对象event的属性 ( C )
A offsetX
B clientX
C offsetLeft
D target
//C、实时获取元素针对于offsetParent的left坐标 -
html文档中怎么区分节点对象的节点类型 ( C )
A typeof
B type
C nodeType
D nodeName
//nodeType 属性返回以数字值返回指定节点的节点类型。如果节点是元素节点,则 nodeType 属性将返回 1。如果节点是属性节点,则 nodeType 属性将返回 2。如果是文本内容,则 nodeType 属性将返回 3。 -
下列代码的执行结果是 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 -
在HTML页面中包含如下所示代码,则编写Javascript函数判断是否按下键盘上的回车键正确的编码是 (回车键的键盘码是13)<input name=“password”; type=“text” οnkeydοwn=“myKeyDown()”> ( C )
A function myKeyDown(){ if (window.keyCode13){ alert(“你按下了回车键”)}};
B function myKeyDown(){ if (document.keyCode13){ alert(“你按下了回车键”);}}
C function myKeyDown(){ if (event.keyCode13){ alert(“你按下了回车键”)}}
D function myKeyDown(){ if (keyCode13){ alert(“你按下了回车键”)}}
//eyCode是event对象下面的属性,keycode等于13说明按下了回车键 -
在Javascript语言中,当元素失去了焦点时激发的事件是 ( D )
A fouce
B unload
C mouseover
D onblur
//onblur当失去焦点时候触发,聚焦是onfocus -
下列代码的执行结果是 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的时候; -
下列哪个不是javascript中的数据类型 ( D )
A string
B boolean
C undefined
D num
//数据类型分为两大类:
基本数据类型:string、number、undefined、boolean、null
复合数据类型(引用):array、function、json…… -
下列哪个不是Math对象的方法 ( A )
A sort()
B floor()
C random()
D abs()
//sort()是数组的方法 -
使用 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>
-
有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正确 -
下列代码的执行结果肯定不会是 ( D )
document.write(parseInt(Math.random()*3))
A 1
B 0
C 2
D 3
//Math.random()获取0-1 1取不到 乘3就是0-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 -
如果今天是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开始 -
下列代码输出的结果是 ( A )
var y = 1;
var x = y = typeof x;
console.log(x);
A undefined
B 1
C y
D 报错
//typeof x时,x只是被声明,但是没有被赋值 -
字符串的match方法的语法格式为:str.match(searchvalue) 或者 str.match(regexp),下列说法错误的是()注:RegExp是正则的构造函数 ( C )
A 如果regexp参数不是RegExp对象,则需要首先把它传递给RegExp构造函数,将其转换为RegExp对象
B 函数的返回值存放匹配结果的数组。该数组的内容依赖于regexp是否具有全局标志g
C 全局匹配返回的数组的内容与非全局匹配返回的数组内容是一样的
D 代码’1abc2qwe3’.match(/\d+/g); 将找出字符串中的所有数字
//全局匹配时,返回所有与regexp匹配的内容,非全局匹配时,第一个元素为匹配内容,后面为分组捕获的内容 -
下列关于事件监听器的说法,错误的是 ( A )
A addEventListener第三个参数为false时,表示事件不会触发
B IE8以下使用attachEvent添加事件监听器
C addEventListener同一个事件可以绑定多个函数
D IE8以下浏览器使用detachEvent移除监听器.
//addEventListener()的第三个参数为false时,代表冒泡阶段 -
下面的代码段,执行后的输出结果是 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 转换成数字 -
下列代码输出的结果是 ( 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 先提升。 -
正则表达式: /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次
多选题
-
实现一个元素的拖拽,至少需要那几个事件,请选择 ( A,B,C )
A onmousedown
B onmousemove
C onmouseup
D onmouseover -
下面哪些是es6新增的 ( A,B,C,D )
A 箭头函数
B 解构赋值
C let关键字
D class 定义类 -
正则对象的方法包括(A,C)
A test();
B index()
C exec()
D match()
//正则的对象方法只有2个,其他属于字符串的方法.exec() 找到了返回数组,找不到返回null.test() true或false. -
以下对严格模式的说法正确的是 ( A,B,C,D )
A 使用"use strict"定义严格模式
B 严格模式可以定义在函数的最顶端或程序的最顶端
C 在严格模式下 在变量a 没有声明时 a = 10 ; 这样的赋值会报错
D 严格模式执行效率更高 -
对事件委托的说法正确的是 ( B,C,D )
A 所有的事件都可以实现事件委托;
B 减少了事件绑定浏览器重绘的次数,提高了程序的执行效率;
C 减少事件的冗余绑定,节约了事件资源。
D 可以解决动态添加的元素节点无法绑定事件的问题; -
对事件绑定的说法正确的是 ( A,C )
A 统事件绑定(dom.onclick),不能同时绑定多个同一事件,后面的会覆盖前面的;
B 利用事件监听不能完成事件的绑定
C addEventListener()方法可以实现事件的绑定
D 传统事件触发,只能经过冒泡阶段,不经过捕获阶段; -
事件中会产生哪些兼容问题 ( A,B,C,D )
A 事件对象的创建
B 事件冒泡
C 浏览器的默认行为
D 事件委托中事件源的获取 -
将字符串转成大写和小写的方法是 ( B,C )
A str.toSmallCase()
B str.toLowerCase()
C str.toUpperCase()
D str.toUpperChars() -
以下表达式能生成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) -
var a=“10”,以下能实现字符串转成数字的是 ( A,B,C )
A a*1
B Number(a)
C a-0
D a+0 -
下面哪些属于数组的方法 (A,B,C,D)
A sort( )
B push()
C indexOf()
D join() -
下面哪个不是数组的方法 ( B,D )
A map()
B split()
C filter()
D test ()
//split 是字符串方法 test 是正则方法 -
更改h1标签内容可以用以下哪个属性 ( A,C )
A innerText
B valueof
C innerHTML
D value -
给元素添加事件监听正确的方法有 ( B,C )
A oDiv.onclick()
B oDiv.attachEvent()
C oDiv.addEventListener()
D oDiv.detachEvent()
//A的正确用法为oDiv.onclick = function () {}
//D为IE8接触事件绑定的方法 -
以下字符串方法支持正则表达式的有哪些 ( B.C,D )
A indexOf
B match
C replace
D search
//字符串的一些方法是和正则一起使用比较多的,比如match()匹配、replace()替换、search()查找 -
如何阻止事件冒泡 ( A,D )
A cancelBubble
B return true
C event.preventDefault
D event.stopPropagation()
//浏览器有一些默认行为,比如右键菜单,点击跳转,文字选中效果,拖拽鬼影等,如果出现莫名其妙的问题,也可能是默认行为导致的,阻止默认行为:event.preventDefault和return false,阻止冒泡:cancelBubble和event.stopPropagation();。 -
下面表示鼠标事件的有 ( A,B,C,D )
A onclick
B onmouseover
C onmouseout
D onmousemove -
下面是正则中有意义的简写的有 : ( A.B.C.D )
A \d
B \w
C \s
D \S -
下面哪些方法不是正则的方法 ( A,B,C )
A search()
B match ()
C replace ( )
D test ()
//ABC都是字符串方法 -
解构赋值可以做到以下哪些事 (A,B,C,D)
A 一次性可以定义多个变量
B 可以作用在函数的传参上,以对象的方式传递,参数顺序也无须保持一致
C 可以轻松实现两个数的交换
D 可以实现一个函数返回多个结果
a-zA-Z ↩︎