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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM