[以下哪些为正确的结局]js基础试题及答案(一)
var x=10;
++x;
console.log(x);
}
f1();
执行后的结果是
A 程序错误
B undefined 和 10
C undefined 和 11
D 10 和 11
正确答案: C
解析:
undefined 和 11
19.引用名为"xxx.js"的外部脚本的正确语法是
A
B
C
D
正确答案: C
解析:
JS脚本引入用src属性
20.如下代码,会弹出来是什么 var a; alert(a);
A 报错
B a is not define
C undefined
D 0
正确答案: C
解析:
变量提升
21.如下代码,会弹出来是什么 alert(a);var a=12;
A 报错
B a is not define
C undefined
D 12
正确答案: C
解析:
变量提升
22.的组成不包括
A ECMAScript
B DOM
C BOM
D document
正确答案: D
解析:
23.console.log( typeof 123===number)
A 报错
B true
C false
D 123
正确答案: B
解析:
得到字符串的"number", 所以类型和值都相等为全等
24.代码的输出结果是
function fnMax(a,b,c){undefined
var max=a > b ? a : b;
if(c > max){ max=c; }
alert(max);
}
fnMax(8,2,5);
A 5
B 2
C 8
D 10
正确答案: C
解析:
8,2,5中的最大值为8
25.以下哪项不属于javascript的特征
A Javascript是一种脚本语言
B Javascript是事件驱动的
C Javascript代码需要手动编译以后才能执行
D Javascript是独立于平台的
正确答案: C
解析:
JavaScript是基于事件驱动并独立于平台的脚本语言
26.如下代码,会弹出来是什么 var num1=1 ;var num2=1 alert(num1-num2);
A 0
B 11
C 1+1
D 报错
正确答案: A
解析:
相减,进行隐士转换,全部为数字
27.console.log(typeof typeof 123456),在控制台中打印什么内容
A 123456
B number
C string
D object
正确答案: C
解析:
第一个 typeof 123456 返回 number
然后typeof number 返回"string"
28.console.log( (2==true)+1 )会弹出
A true
B false
C 1
D 2
正确答案: C
解析:
29.如下代码,会弹出来是什么 var num1=1; var num2=1 alert(num1+num2)
A 2
B 11
C 1+1
D 报错
正确答案: B
解析:
隐士转换
30.下列表达式结果为false的是
A !""
B !{}
C !undefined
D !!5
正确答案: B
解析:
使用if去判断一个空对象结果仍然是true
二、多选题(不定项选择)(共20题,每题2分)
1.下面哪些是循环语句
A while
B do…while
C for
D switch
正确答案: A,B,C
解析:
while、do…while、for
2.下面哪些属于选择结构控制语句:
A if
B for
C switch
D while
正确答案: A,C
解析:
固定关键字
3.下面选项中数据类型为数字类型的有
A 1
B 1
C true
D NaN
正确答案: B,D
解析:
1、NaN
4.下面语句得到值为true的有
A 1==1
B 1===1
C 2 > 19
D 2==19
正确答案: A,C
解析:
比较相等两个等号会有隐式类型转换,只需值相等即可,三个等号必须类型和值同时相等结果才为true,故A对B错
字符串之间的大小比较是按照ACSII编码大小,2的ASCII码比1的ASCII大,所以C正确
数字跟字符串比较大小会将字符串隐式转换为数字,即 2>19,D选项错误
5.下面语句得到值为数字2的有
A 1 + ‘1’
B 8 % ‘3’
C ‘1’ + ‘1’
D ‘4’ - 2
正确答案: B,D
解析:
A是字符串拼接,结果为:11; B3会隐式转换位3,结果为8%3=2;C为字符串拼接,结果为 11; D4会隐式转换为4,结果为4-2=2
故,答案为BD
6.下面哪些是关键字
A var
B function
C case
D 以上都是关键字
正确答案: A,B,C,D
解析:
var申明变量的关键字;function申明函数的关键字;case选择分支的关键字
故答案为ABCD
7.以下是JavaScript基本数据类型的是
A Object
B number
C string
D boolean
正确答案: B,C,D
解析:
Object是引用类型
8.以下运算符正确的是
A ++
B –
C &&
D >=
正确答案: A,B,C,D
解析:
自增、自减、逻辑与、大于或等于
9.JavaScript运算符都有哪些
A 赋值运算符
B 算术运算符
C 关系运算符
D 逻辑运算符
正确答案: A,B,C,D
解析:
赋值运算符=、数学运算符+ - * / %、一元运算符++ --、逻辑运算符&& || !
10.JavaScript的基本组成包括
A DOM
B BOM
C jQuery
D ECMAScript
正确答案: A,B,D
解析:
JavaScript的基本组成包括DOM、BOM和ECMAScript
11.以下哪些属于循环语句
A switch
B for
C while
D do…while
正确答案: B,C,D
解析:
循环语句 有三个 for while do…while; switch是选择结构
12.函数的参数分为
A 形参
B 实参
C 有参
D 无参
正确答案: A,B
解析:
参数 分为实参和形参
13.以下哪些属于基本数据类型
A object
B boolean
C string
D number
正确答案: B,C,D
解析:
null 和 undefined是特殊数据类型;
14.函数中实参可以是
A 常量
B 变量
C 只能是变量
D 只能是常量
正确答案: A,B
解析:
实参可以是变量 常量 ,形参只能是变量
15.逻辑运算符有
A >
B <
C ||
D &&
正确答案: C,D
解析:
逻辑运算符有三个 && || !;AB选项是比较
16.javascript由哪几部分组成
A js
B ECMAScript
C DOM
D BOM
正确答案: B,C,D
解析:
BCD
17.下面声明变量及赋值的写法正确的有
A var _myName=12a
B var _myName=12a
C var myName=12
D var $myName=true
正确答案: B,C,D
解析:
A选项 12a是字符串,不是纯数字,字符串要用引号
下面哪些方法可以实现将字符串"123",变成数值型
A Number()
B parseInt()
C parseFloat()
D Boolean()
正确答案: A,B,C
解析:
Boolean()转成布尔值
19.下面哪些属于关系运算符?
A >
B >=
C <
D <=
正确答案: A,B,C,D
解析:
关系
20.下面哪些属于逻辑运算符?
A &&
B ||
C !
D 以上都不正确
正确答案: A,B,C
解析:
逻辑运算符
一、单选题
1.已知数组 var arr=[1,2,3,4,5],执行 arr.pop() 后,数组的长度是
A 4
B 5
C 6
D 7
正确答案: A
解析:
arr.pop()是删除数组后一个数据
2.var array=new Array(5); array.push(8); 数组array的长度是
A 5
B 6
C 7
D 8
正确答案: B
解析:
new Array(5);创建一个长度为5的空数组,push方法在数组后增加一位,结果为6
3.3秒后,图片消失,应该使用下面哪个方法
A hide()
B setTimeout()
C ClearInterval
D clearTimeout()
正确答案: B
解析:
setTimeout延时器
4.下面哪一个方法可以查找 class 名为 xm的元素
A document.getElementsByClassName(xm)
B document.getElementsByName(xm)
C document.Class(xm)
D document.ByName(xm)
正确答案: A
解析:
document.getElementsByClassName(xm);获取class为xm的元素
5.如果弹出一个可输入信息的框,可以使用哪一个方法
A confirm()
B prompt()
C alert()
D
以上都对
正确答案: B
解析:
prompt
6.如何快速的将数组arr清空
A arr.length=0
B arr=
C arr.length=
D arr.length=[]
正确答案: A
解析:
强行将数组的length设置为0,可以清空数组
7.Math.floor(-3.14) 的结果是( )
A -3.14
B -3
C -4
D 3.14
正确答案: C
解析:
8.下面哪个是window窗口大小改变触发的事件
A onmouseover
B onresize
C onmouseout
D onclick
正确答案: B
解析:
1
9.判断下面的代码输出为 var a=1; var b=a * 0; var a; if (b==b) { console.log(b * 2 + 2- 0 + 4); } else { console.log(!b * 2 + 2- 0 + 4); }
A 6
B NaN
C 22
D 26
正确答案: A
解析:
10.请阅读下面代码 var num=Math.floor(Math.random()*100); 上述代码中num的取值范围是
A 0–100
B 1–99
C 0–99
D 1–100
正确答案: C
解析:
公式:Math.random()*(max-min+1)+min
11.关于nodeName描述错误的是
A 元素节点的节点名始终是标签名
B 文本节点的节点名始终是document
C 文本节点的节点名始终是text
D 属性节点的节点名始终是属性名
正确答案: B
解析:
文本节点名称是text
请阅读列代码
文本
list1list2list3 以上代码的输出结果是
A
list1
B " "
C
list2
D
list3
正确答案: 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 向网页中输出
,以下代码中可行的是
A
B
C
D
1
2
3
4
5
6
7
正确答案: B
解析:
document.write()方法可以打印节点到页面显示,参数是字符串,如有标签需要写完整。document.write(
);正确
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
解析:
三大家族的知识要熟悉