一、單選題(共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
解析:
A24.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
解析:
B27.哪個屬性可以獲得滾動條已經滾動的垂直距離
A document.scrollTop
B document.top
C document.body.scrollTop
D window.scrollTop
正確答案: C
解析:
C28.以下代碼輸出結果為 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
解析:
AD6.以下屬於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
解析:
AD15.開啟定時器和延時器的方法有
A clearInterval()
B setTimeOut()
C setTimeout()
D setInterval()
正確答案: C,D
解析:
CD16.下列方法能截取字符串片段的是
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
解析:
AC19.以下不屬於關鍵字或保留字的有
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.documentElement3.以下關於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
解析:
D7.下列代碼執行結果為真的是
A 1<2 && “5”!=5
B 2>2*1 || “5”==5
C 2>2*1 && 5==5
D 2>=2*1 && “5”===5
正確答案: B
解析:
B8.下面可以獲取瀏覽器在卷動后,隱藏的文檔部分的高度的屬性是
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++){undefinedfor(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
解析:
ABCD3.正則對象的方法包括
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
解析:
2221115.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
解析:
aaa9.可以用來遍歷字符串的語句有
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 B18.ES6中新增的聲明變量的關鍵字有
A function
B let
C const
D str
正確答案: B,C
解析:
let用來聲明變量const用來聲明常量
19.解構賦值可以做到以下哪些事
A 一次性可以定義多個變量
B 可以作用在函數的傳參上,以對象的方式傳遞,參數順序也無須保持一致
C 可以輕松實現兩個數的交換
D 可以實現一個函數返回多個結果
正確答案: A,B,C,D
解析:
12220.下列有關事件對象之中屬性的描述,正確的有
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
解析:
三大家族的知識要熟悉