js基础试题及答案(一)

一、单选题(共30题,每题2分)
1.如下代码,会弹出来是什么 var num1=“1” ;var num2=1 alert(num1-num2);

A 0

B 11

C 1+1

D 报错

正确答案: A
解析:
相减,进行隐士转换,全部为数字

2.如下代码,会弹出来是什么 var num1=“hi” var num2=1 alert(num1+num2);

A hi1

B 1

C hi

D 报错

正确答案: A
解析:
字符串拼接

3.在JS中,“1555”+3的运行结果是

A 1558

B 1552

C 15553

D 1553

正确答案: C
解析:
15553

4.parseInt(“20.2aa”) 返回值为

A 20

B 20.2

C 20.2aa

D
NaN
正确答案: A
解析:20

5.分析输出结果是

function sum(a){ a = a + 2; }

var res = sum(2);

console.log(res);

A 2

B 4

C NaN

D undefined

正确答案: D
解析:
undefined

6.var a = false;

var x = a? “A” : “B”;

最终x的值为

A A

B B

C true

D false

正确答案: B
解析:B

7.下列变量名合法的是

A 5show

B return

C $user

D var

正确答案: C
解析:
变量名不能以数字开头,A错;BD是关键字,C正确

8.需要在 html 页面上引用脚本文件myJs.js,下列语句中,正确的是

A <script href="myJs.js" type="text/javascript" />

B <script src="myJs.js" type="text/javascript" />

C <script href="myJs.js" type="text/javascript"></script>

D <script src="myJs.js" type="text/javascript"></script>

正确答案: D
解析:
script 是双标签,src引入文件

9.代码的输出结果是

var a = 3;

var b = 2;

var c = (a+2)/b;

document.write ©;

A 2.0

B 2.5

C 16.0

D (3+2)/2

正确答案: B
解析:
js弱类型,(2+3)/2=2.5

10.代码的输出结果是

function add(){undefined

var sum = 1 + 2 ;

console.log( sum ) ;

}

console.log(sum) ;

A 输出两个3

B 输出一个3

C 程序报错

D 输出一个undefined

正确答案: C
解析:
sum是局部变量,全局环境未定义

11.typeof null 检测出来的数据类型是

A null

B number

C object

D undefined

正确答案: C
解析:
null是空对象

12.parseInt(“12a”)的结果是

A NaN

B 12a

C 0

D 12

正确答案: D
解析:
因为parseInt()的转换规则:跳过开头结尾的空字符,从左到右依次执行转换,碰到第一个不认识的数字则停止,所以答案为D

13.下列的哪一个表达式将返回假

A !(3<=1)

B (4>=4)&&(5<=2)

C 2<3

D (2<3)||(3<2)

正确答案: B
解析:
&& 左右有一侧为假 ;整个表达式就为假

14.关于循环下列说法正确的是

A while循环至少会运行一次

B do…while循环至少会运行一次

C for循环至少会运行一次

D switch循环至少会运行一次

正确答案: B
解析:
do…while 是先执行后判断,不管条件成不成立,都会至少执行一次

15.for(var i = 0; i < 10; i++){ i++; }

console.log(i)的值是?

A 10

B 9

C undefined

D 7

正确答案: A
解析:
i++ 最终为10; 不小于10;结束for循环;此时i为10

16.下面代码的执行结果为

var a = 20;

function foo(){undefined

console.log(a) ;

var a = 10 ;

console.log(a) ;

}

foo();

A 20 10

B 10 10

C 20 20

D undefined 10

正确答案: D
解析:
函数中的a会变量提升;所以第一个a是undefined;a 赋值了10;所以a 是10;D选项是正确的

17.有下述JS代码:

var x = 10; var y = 20;

var z = x<y ? x++ : ++y ;

console.log( ‘x=’ + x + ‘; y=’ + y + ‘; z=’ + z);

其运行结果是

A x=11; y=21; z=11

B x=11; y=20; z=10

C x=11; y=21; z=10

D x=11; y=20; z=11

正确答案: B
解析:
x=11; y=20; z=10

18.查看如下代码:

function f1( ){undefined

console.log(x);    

var x = 10;

  • 1
  • 2
  • 3

++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.JavaScript的组成不包括
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 a,b,c;    

var max = a > b ? a : b;

if(c > max){ max = c; }

alert(max);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

}

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”; B“3”会隐式转换位3,结果为8%3=2;C为字符串拼接,结果为 “11”; D“4”会隐式转换为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

请阅读列代码

  • 文本
  • list1
  • list2
  • list3
  • 以上代码的输出结果是
    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 <input type="text"onClick=“alert(value)”>
    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)<input name=“password”; type=“text” οnkeydοwn=“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说明按下了回车键

    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<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

    正确答案: 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<document.forms.length;i++) {undefined

    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++){undefined

    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="";
    }
    1
    2
    3
    4
    }

    正确答案: D
    解析:
    for(var i=0;i<document.forms.length; i++){undefined

    for(var j=0;j<document.forms[i].elements.length; j++){undefined

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

posted @ 2022-04-06 23:52  szmtjs10  阅读(2265)  评论(0编辑  收藏  举报