js試題及答案(2)


一、單選題(共30題,每題2分)
1.閉包的好處說法不對的

A 緩存變量

B 防止命名沖突

C 可能造成內存泄露

D 減少內存使用率

解析:

2.不能進行強制類型轉化的為
A parseInt
B parseFloat
C Number
D Math.floor
正確答案: D

3.alert(username);var username=“leson”;結果為

A undefined

B leson

C null

D 報錯

正確答案: A
解析:
變量提升,預解析

4.不屬於常見23種設計模式
A 單例
B MVC
C 觀察者
D 策略
正確答案: B

5.以下哪一個不是常見的設計模式

A 單例模式

B 代理模式

C 飛行模式

D 觀察者模式

正確答案: C
解析:
飛行模式,手機里才有的模式!!

6.有代碼 var name = ‘global’; var obj = { name : ‘obj’, dose : function(){ this.name = ‘dose’; return function(){ return this.name; } } } console.log(obj.dose().call(this)); 問在控制台打印的結果為

A global

B obj

C dose

D undefined

正確答案: A
解析:
obj.dose().call(this)

obj.dose()返回的是函數function(){ return this.name; }

call(this)是調用了函數function(){ return this.name; } 並且使用window改變了函數中的this,所有this.name就是window.name

7.下列哪一項不是jquery進行文檔操作的方法

A append()

B inner()

C wrap()

D clone()

正確答案: B
解析:
inner() 不是

8.關於jquery插件,描述錯誤的是

A 使用jquery插件可以提高開發效率

B jquery插件可以通過jquery對象調用

C jquery插件無法實現鏈式調用

D jquery插件一般都需要考慮參數設置問題

正確答案: C
解析:
只要返回值是jq中的對象,就可以鏈式調用

9.以下不是閉包特點的是

A 函數嵌套函數

B 函數內部可以引用外部的參數和變量

C 參數和變量不會被垃圾回收機制回收

D 返回的函數可以不用存儲在外部變量中

正確答案: D
解析:
返回的函數必須存儲在外部變量中

10.以下函數執行的結果是 function fun1(x) { if(x>2){ return (fun1(x-1)+fun1(x-2)); }else{ return 1; } } console.log(fun1(10));

A 50

B 52

C 55

D 60

正確答案: C
解析:
這是一個回調函數的使用

11.以下程序最后計算的結果是 function fun1(){ var sum=1; return function(){ sum++; return sum; } } var fun2=fun1(); console.log(fun2()); console.log(fun2());

A 1,1

B 1,2

C 2,3

D 2,2

正確答案: C
解析:
這是閉包的使用

12.函數使用return不能返回以下哪一個

A 函數

B 對象

C 數值

D for循環

正確答案: D
解析:
函數只能返回數據不能返回循環

13.下列代碼輸出的結果是 var a; var a = [1,2,3]; function a(a){ a[1] = 5; } a(a); console.log(a);
A [1,2,3]
B [1,5,3]
C 報錯
D undefined
正確答案: C
解析:

14.var obj = {1 : 1};

var arr = [1,1];

console.log(obj + arr);

A 1

B 2

C [object Object]1,1

D 1,1[object Object]

正確答案: C
解析:

15.下列箭頭函數書寫正確的是
A 0–{}
B a,b => {}
C _ =>
D caller
正確答案: C
解析:

16.在構造函數中,可以在一個屬性后添加方法,該屬性為

A prototype
B prototype
C proto
D prototype
1
2
3
4
正確答案: B
解析:

17.關於設計模式,下面哪個是錯誤的

A 工廠方法模式

B 路由器模式

C 策略模式

D 觀察者模式

正確答案: B
解析:

18.下面哪種不是jquery的選擇器

A 基本選擇器

B 后代選擇器

C 類選擇器

D 進一步選擇器

正確答案: D
解析:

19.以下哪個方法不能發起異步請求

A $.get()

B $.post()

C $.json()

D $.ajax()

正確答案: C
解析:
A、B、D均是jquery類本身的異步請求方法

C選擇項中的$.json()為干擾項,無此用法

20.關於jQuery框架,下列描述錯誤的是

A jQuery框架支持鏈式寫法

B jQuery框架實現了跨瀏覽器的兼容包括IE低版本

C jQuery1.x版本支持低版本IE瀏覽器

D jQuery不能操作CSS3屬性

正確答案: D
解析:
jQuery可以操作css3屬性

21.下列哪個方法不能改變函數內部this的指向

A bind

B change

C apply

D call

正確答案: B
解析:
bind call apply均可改變this指向,注意使用的區別

22.jQuery中的delay方法的作用是

A 停止動畫執行

B 暫停動畫執行

C 延遲動畫執行

D 開始動畫執行

正確答案: C
解析:
識記題

23.關於call和apply的說法,錯誤的是

A call的第一個參數和apply的第一個參數一樣

B call的第二個參數到最后一個參數是函數本身的參數

C 關於第二個參數,call可以寫arguments,而apply則不可以

D call和apply的功能是一樣的,唯一的區別是格式上的區別

正確答案: C
解析:
call的參數為參數列表,apply的參數為數組,可以用arguments表示

24.什么是閉包

A 閉包是指有權訪問另一個函數作用域中的變量的函數

B 閉包是指有權訪問任意函數作用域中的變量的函數

C 閉包是指有權訪問全局個函數作用域中的變量的函數

D 閉包是指有權訪問局部個函數作用域中的變量的函數

正確答案: A
解析:
概念題

25.原型的概念

A 每聲明一個function,都有prototype原型,prototype原型是函數的一個默認屬性,在函數的創建過程中由js編譯器自動添加

B 每聲明一個對象,都有prototype原型,prototype原型是函數的一個默認屬性,在函數的創建過程中由js編譯器自動添加

C 每聲明一個function,都有__proto___原型,prototype原型是函數的一個默認屬性,在函數的創建過程中由js編譯器自動添加

D 每聲明一個function,都沒有prototype原型,prototype原型是函數的一個默認屬性,在函數的創建過程中由js編譯器自動添加

正確答案: A
解析:
原理題,每一個函數都有一個原型對象prototype

26.$(document).ready()和window.onload 有什么區別

A window.onload方法是在網頁中所有的元素完全加載到瀏覽器后才執行,$(document).ready() 可以在DOM載入就緒是就對其進行操縱

B 沒有區別

C ( d o c u m e n t ) . r e a d y ( ) 方 法 是 在 網 頁 中 所 有 的 元 素 完 全 加 載 到 瀏 覽 器 后 才 執 行 , (document).ready()方法是在網頁中所有的元素完全加載到瀏覽器后才執行, (document).ready()(document).ready() 可以在DOM載入就緒是就對其進行操縱

D 兩者作用不一樣

正確答案: A
解析:
onload包含文檔和資源加載完畢

ready指文檔加載完畢

27.一個php后綴的文件,可以在什么環境下執行()

A mysql數據庫

B 瀏覽器

C Apache服務器

D Windows系統

正確答案: C
解析:

28.同步和異步執行分別表示什么含義()

A 按順序依次執行和同時分開執行

B 同時分開執行和按順序依次執行

C 按一致的速度執行和按不同的速度執行

D 按相同的步驟執行和按不同的步驟執行

正確答案: A
解析:
生活中的同步和代碼中的不一樣

29.HTTP協議的默認端口號是多少?( )
A 8080
B 8888
C 80
D 3306
正確答案: C
解析:

30.以下運行的結果是false的是 function Box(){this.name=‘zhang’;} function Desk(){this.age=100;} function Table(){this.lever=1000} Desk.prototype=new Box();//通過原型鏈繼承 var desk=new Desk(); var table=new Table();

A alert(table instanceof Object)

B alert(desk instanceof Box);

C alert(Desk instanceof Box);

D alert(desk instanceof Desk );

正確答案: C
解析:
A. 一切事物皆對象

B. Dest 繼承了 Box, 所以正確

C. Desk 是 Function的實例,和Box無關

D. desk 是 Desk 的實例

二、多選題(不定項選擇)(共20題,每題2分)
1.js創建對象的方式有下面哪幾種
A 可以通過json方式創建對象
B 可以通過new 關鍵字創建對象
C 可以通過函數調用方式創建對象
D 對象不可以通過函數的調用方式創建
正確答案: A,B,C
解析:

2.下面關於構造函數的優點,描述正確的有哪些

A 構造函數可以通過new關鍵字創建對象,對象的創建比較規范

B 構造函數只能創建一個對象

C 可以解決多個同類對象創建時,代碼重復的問題

D 構造函數創建的對象,創建出的對象是相等關系

正確答案: A,C
解析:

3.關於call,apply,bind方法,下列說法正確的是

A 三者都可以用於繼承

B 三者都可以改變this指向

C 三者參數傳遞一樣

D 三者調用方式一樣

正確答案: A,B
解析:
三者都可以改變this,所有都可以是 實現繼承(構造函數繼承的原理是改變函數的this)

4.svn在進行版本管理時,可以實現的功能有

A 更新至某個指定的版本

B 對某個文件進行鎖定

C 創建多個分支

D 對某個文件解除版本控制

正確答案: A,B,C,D
解析:
四個選項都是svn可以實現的

5.jquery中移除jquery對象的方法有

A remove

B detach

C empty

D clear

正確答案: A,B,C
解析:
前三個都可以,clear不行

6.以下說法錯誤的是

A 對象一般存儲在棧中

B 對象是類的實例化

C 類是對象的實例化

D 類不可以繼承

正確答案: A,C,D
解析:

7.對象設置屬性和屬性值的方法正確的是

A obj.name=3

B obj[“name”]=3

C obj{name} = 3

D Obj->name=3;

正確答案: A,B
解析:

8.下列哪種屬於設計模式
A 單例模式
B 觀察者模式
C mvc
D mvvm
正確答案: A,B
解析:

9.構造函數可以創建對象執行的過程是

A 當使用了構造函數,並且new 構造函數(),那么就后台執行了new Object()

B 將構造函數的作用域給新對象,(即new Object()創建出的對象),而函數體內的this 就代表new Object()出來的對象

C 執行構造函數內的代碼

D 返回新對象(后台直接返回)

正確答案: A,B,C,D
解析:
這是構造函數運行時,內部執行的一個過程,請識記並理解

創建一個新對象,改變this指向,執行構造函數里的代碼,返回這個新對象

10.案例代碼如下:

大字體
小字體
請選取文本是"大字體"的div對象

A $(“div.big”);

B $(“div .big”)

C $(“div:contains(‘大字體’)”);

D $(“form > div.big”);

正確答案: A,C,D
解析:
此題考察不同選擇器的用法

B選項是選取div里具有big類名(后代)的jquery對象集合

11.為什么要使用jQuery?jquery有哪些好處

A 它有強大的選擇器,出色的DOM操作的封裝

B 出色的瀏覽器的兼容性

C 完善的ajax

D 有可靠的事件處理機制

正確答案: A,B,C,D
解析:
jquery最大的特點在查詢,並封裝了大量的方法進行DOM操作,事件處理及ajax請求等

12.下面是設計模式的是

A 單例模式

B 觀察者模式

C 測試模式

D 視圖模式

正確答案: A,B
解析:
單例模式和觀察者模式,是常見的設計模式

13.jq選擇器有哪些

A 類

B id

C 標簽

D 以上都可以

正確答案: A,B,C,D
解析:
css中的選擇器都可以在jq中使用

14.在php中,下列哪些是輸出(打印)函數。( )

A print

B echo

C print_r

D write

正確答案: A,B,C
解析:

15.前后端開發過程中,解決跨域的方法有那些。( )

A 后端代理

B jsonp

C xhr2

D ajax

正確答案: A,B,C
解析:

16.下面哪些是mysql的常用數據類型( )

A varchar

B int

C float

D text

正確答案: A,B,C,D
解析:

17.Jq中關於dom 增刪改的操作有

A append

B appendTo

C remove

D detach

正確答案: A,B,C,D
解析:
幾個都是dom操作的方法

18.下面可以實現繼承的有

A 構造函數繼承

B Object.create()

C 原型鏈繼承

D es6 extends

正確答案: A,B,C,D
解析:
前三種是es5中繼承,最后一個是es6的繼承

19.引起跨域的情況有哪些.( )

A 域名不同

B 端口不同

C 同一域名,不同協議。

D 同一域名,同一端口,同一協議

正確答案: A,B,C
解析:
同源策略: 相同域名、端口號、傳輸協議

20.執行這個程序后打印的結果forEach=function (arr,fn) { for(var i=0,l=arr.length;i<l;i++){ var c=arr[i]; if(fn.call(c,i,c)===false){ return false; } } }; function box1(index,num) { console.log(index,num); } var arr=[10,9,8,7,6,5,4]; forEach(arr,box1)

A 0 10

B 3 7

C 2 4

D 5 5

正確答案: A,B,D

(二)

一、單選題(共30題,每題2分)
1.不屬於同源策略限制條件的
A 端口
B 協議
C 域名
D 網址
正確答案: D
2.不屬於常見23種設計模式
A 單例
B MVC
C 觀察者
D 策略
正確答案: B
3.有代碼 function Foo(){}; var foo = new Foo(); 下列表達式運算結果為true的選項為
A Foo.prototype == Foo.proto
B foo.prototype == Foo.proto
C foo.proto == Foo.prototype
D foo.proto == Foo.proto
正確答案: C
解析:
foo.proto == Foo.prototype
實例的 proto__屬性指向的是 構造函數的prototype
4.可以通過以下哪個運算符或方法判斷一個實例屬於某個類
A typeof
B instanceof
C isPrototypeOf
D hasOwnProperty
正確答案: B
解析:
instanceof可以判斷一個實例屬於某個類
5.以下哪個關鍵字可以實現類的繼承
A inherit
B extends
C public
D interface
正確答案: B
解析: extends es6中的繼承
6.關於原型對象以下說法錯誤的是
A 每一個函數都有一個原型對象
B 每一個構造函數都有一個原型對象
C 原型對象上的屬性和方法能被實例訪問
D 原型對象上的屬性和方法能被子類(代碼里)訪問
正確答案: D
解析:
原型對象上的屬性和方法能被實例訪問
7.有代碼 function foo(){ var a=10; return function(){ console.log(a++) } } foo()(); 運行之后,會在控制台中打印
A 10
B 11
C 函數體
D 報錯
正確答案: A
解析:
a++,加加在后,先賦值后加
8.版本管理工具svn中的提交命令是
A push
B add
C commit
D update
正確答案: C
解析:
svn中的提交命令是commit
9.有代碼 function Foo(){ this.name=“test1”; function bar(){ this.name=“test2” }; bar(); } Foo.name = “test3”; var foo = new Foo(); 問foo.name的值為
A test1
B test2
C test3
D undefined
正確答案: A
解析:
var foo = new Foo()
foo是是Foo的實例,所有foo.name 打印結果就是test1
10.下列jquery對象方法中返回布爾值的是
A not()
B has()
C hasClass()
D fiter()
正確答案: C
解析:
hasClass()有類名返回true,沒有返回false
11.下列哪一項不是jquery進行文檔操作的方法
A append()
B inner()
C wrap()
D clone()
正確答案: B
解析:
inner() 不是
12.關於jquery插件,描述錯誤的是
A 使用jquery插件可以提高開發效率
B jquery插件可以通過jquery對象調用
C jquery插件無法實現鏈式調用
D jquery插件一般都需要考慮參數設置問題
正確答案: C
解析:
只要返回值是jq中的對象,就可以鏈式調用
13.函數的length屬性是
A 函數的行數
B 函數的參數個數
C 函數的返回個數
D 永遠是0
正確答案: B
解析:
函數的length是參數的個數
14.函數使用return不能返回以下哪一個
A 函數
B 對象
C 數值
D for循環
正確答案: D
解析:
函數只能返回數據不能返回循環
15.下面說法錯誤的是
A 閉包是指有權訪問另一個函數作用域中的變量的函數
B 閉包的最常見的方式就是在一個函數內創建另一個函數
C 閉包可以被垃圾回收機制所清理
D 函數內部可以引用外部的參數和變量
正確答案: C
解析:
閉包不可以被垃圾回收機制所清理
16.下列代碼輸出的結果是 var a; var a = [1,2,3]; function a(a){ a[1] = 5; } a(a); console.log(a);
A [1,2,3]
B [1,5,3]
C 報錯
D undefined
正確答案: C
17.下列箭頭函數書寫正確的是
A 0–{}
B a,b => {}
C _ =>
D caller
正確答案: C
18.關於this的幾種表述錯誤的是
A this所在函數是事件處理函數,this是事件源
B this所在函數沒有明確額的隸屬對象,那么this是window對象
C Let a = 123; 那么this.a中的this表示window對象
D this所在函數是構造函數時,this是new出來的對象
正確答案: C
19.在構造函數中,可以在一個屬性后添加方法,該屬性為
A prototype
B prototype
C proto
D prototype
正確答案: B
20.在ES6(2015)中,哪個是原先沒有的名詞
A 函數
B 類
C 遞歸
D 過程
正確答案: B
21.jQuery中可以使用哪個可以實現事件委托的綁定
A add
B on
C bind
D click
正確答案: B
22.以下哪個方法不能發起異步請求
A $.get()
B $.post()
C $.json()
D .ajax()正確答案:C解析:A、B、D均是jquery類本身的異步請求方法C選擇項中的.ajax()正確答案:C解析:A、B、D均是jquery類本身的異步請求方法C選擇項中的.json()為干擾項,無此用法
23.下列哪個方法不能改變函數內部this的指向
A bind
B change
C apply
D call
正確答案: B
解析:
bind call apply均可改變this指向,注意使用的區別
24.原型鏈
A 每個繼承父函數的子函數的對象都包含一個內部屬性_prototype。該屬性包含一個指針,指向父函數的prototype。若父函數的原型對象的_proto_屬性為再上一層函數。在此過程中就形成了原型鏈
B 每個繼承父函數的子函數的對象都包含一個內部屬性_proto。該屬性包含一個指針,指向父函數的prototype。若父函數的原型對象的prototype_屬性為再上一層函數。在此過程中就形成了原型鏈
C 每個繼承父函數的子函數的對象都包含一個內部屬性_proto_。該屬性包含一個指針,指向父函數的_proto_。若父函數的原型對象的_proto_屬性為再上一層函數。在此過程中就形成了原型鏈
D 每個繼承父函數的子函數的對象都包含一個內部屬性_proto_。該屬性包含一個指針,指向父函數的prototype。若父函數的原型對象的_proto_屬性為再上一層函數。在此過程中就形成了原型鏈
正確答案: D
解析:
原理題,原型鏈是靠__proto__維護的,頂端指向Object.prototype
25.es6繼承的語法
A class
B class extends
C class.prototype
D class extend
正確答案: B
解析:
語法題 例如 class A extends B{}
26.在用瀏覽器查看網頁時出現404錯誤可能的原因是 ( ) 代表網頁不存在沒有找到文件
A 頁面源代碼錯誤
B 文件不存在
C 與數據庫連接錯誤
D 權限不足
正確答案: B
27.XMLHttpRequest 對象的 status 屬性表示當前請求的 http 狀態碼,其中()表示正確返回。
A 200
B 301
C 500
D 404
正確答案: A
解析:
500服務器錯誤,301重定向,404請求資源未找到
28.function People(name, age) { this.name = “xixi”, this.age = 18 return {} } var obj = new People(); People 函數被new調用之后的返回值(obj)是?
A {}
B {name: “xixi” age: 18}
C 報錯
D 函數體本身
正確答案: A
解析:
return 對象比實例返回優先級更高
29.執行下列程序的結果是 function fn3() { arguments.callee.play(); } fn3.play=function () { console.log(“aaa”); }; fn3()
A 報錯
B 空值
C play
D “aaa”
正確答案: D
解析:
callee的使用
30.以下運行的結果是false的是 function Box(){this.name=‘zhang’;} function Desk(){this.age=100;} function Table(){this.lever=1000} Desk.prototype=new Box();//通過原型鏈繼承 var desk=new Desk(); var table=new Table();
A alert(table instanceof Object)
B alert(desk instanceof Box);
C alert(Desk instanceof Box);
D alert(desk instanceof Desk );
正確答案: C
解析:
A. 一切事物皆對象
B. Dest 繼承了 Box, 所以正確
C. Desk 是 Function的實例,和Box無關
D. desk 是 Desk 的實例
二、多選題(不定項選擇)(共20題,每題2分)
1.js創建對象的方式有下面哪幾種
A 可以通過json方式創建對象
B 可以通過new 關鍵字創建對象
C 可以通過函數調用方式創建對象
D 對象不可以通過函數的調用方式創建
正確答案: A,B,C
2.下面關於構造函數的優點,描述正確的有哪些
A 構造函數可以通過new關鍵字創建對象,對象的創建比較規范
B 構造函數只能創建一個對象
C 可以解決多個同類對象創建時,代碼重復的問題
D 構造函數創建的對象,創建出的對象是相等關系
正確答案: A,C
3.關於apply和call繼承描述正確的是
A call方法的第二個參數不固定
B call方法的第二個參數只能有一個
C apply方法的第二個參數是一個數組
D apply方法的第二個參數不固定
正確答案: A,C
4.使用new運算符生成一個實例時,需要執行的步驟有那些
A 創建一個新對象
B 改變this指向
C 執行構造函數里的代碼
D 返回一個對象
正確答案: A,B,C,D
解析:
當代碼 new Foo(…) 執行時,會發生以下事情:
一個繼承自 Foo.prototype 的新對象被創建。
使用指定的參數調用構造函數 Foo ,並將 this 綁定到新創建的對象。new Foo 等同於 new Foo(),也就是沒有指定參數列表,Foo 不帶任何參數調用的情況。
由構造函數返回的對象就是 new 表達式的結果。如果構造函數沒有顯式返回一個對象,則使用步驟1創建的對象。(一般情況下,構造函數不返回值,但是用戶可以選擇主動返回對象,來覆蓋正常的對象創建步驟)
5.jquery中移除jquery對象的方法有
A remove
B detach
C empty
D clear
正確答案: A,B,C
解析:
前三個都可以,clear不行
6.以下關於jquery的說法正確的是
A jquery可以和原生js結合一起使用
B jquery對象和原生DOM對象不能相互轉換
C jquery對象可以使用原生js的方法
D 原生DOM對象不能使用jquery對象方法
正確答案: A,D
解析:
jquery對象不可以使用原生js的方法
7.對象設置屬性和屬性值的方法正確的是
A obj.name=3
B obj[“name”]=3
C obj{name} = 3
D Obj->name=3;
正確答案: A,B
8.jquery中獲取對象的方式正確的是
A $()
B jQuery()
C jquery()
D $jQuery()
正確答案: A,B
9.案例代碼如下:

大字體
小字體
請選取文本是"大字體"的div對象
A $(“div.big”);
B $(“div .big”)
C $(“div:contains(‘大字體’)”);
D $(“form > div.big”);
正確答案: A,C,D
解析:
此題考察不同選擇器的用法
B選項是選取div里具有big類名(后代)的jquery對象集合
10.關於prototype原型和原型鏈說法正確的是
A Javascript的繼承機制基於原型,而不是Class類
B 凡是通過 new Function() 創建的對象都是函數對象,其他的都是普通對象
C 普通對象沒有prototype,但有__proto__屬性
D prototype屬性(對象)會默認獲得一個constructor(構造函數)屬性,這個屬性是一個指向prototype屬性所在函數的指針
正確答案: A,B,C,D
11.為什么要使用jQuery?jquery有哪些好處
A 它有強大的選擇器,出色的DOM操作的封裝
B 出色的瀏覽器的兼容性
C 完善的ajax
D 有可靠的事件處理機制
正確答案: A,B,C,D
解析:
jquery最大的特點在查詢,並封裝了大量的方法進行DOM操作,事件處理及ajax請求等
12.下面是設計模式的是
A 單例模式
B 觀察者模式
C 測試模式
D 視圖模式
正確答案: A,B
解析:
單例模式和觀察者模式,是常見的設計模式
13.jq選擇器有哪些
A 類
B id
C 標簽
D 以上都可以
正確答案: A,B,C,D
解析:
css中的選擇器都可以在jq中使用
14.當XMLHttpRequest 對象的狀態發生改變時調用 callBackMethod 函數, 下列不正確的是()
A xmlHttpRequest.callBackMethod=onreadystatechange;
B xmlHttpRequest. onreadystatechange(callBackMethod);
C xmlHttpRequest. onreadystatechange(new function(){callBackMethod });
D xmlHttpRequest. onreadystatechange= callBackMethod
正確答案: A,B,C
解析:
狀態發生改變,觸發onreadystatechange事件, 在改屬性上綁定callBackMethod事件處理程序即可
15.下面哪些是mysql的常用數據類型( )
A varchar
B int
C float
D text
正確答案: A,B,C,D
16.jquery綁定事件的方法有
A one
B bind
C addEvent
D on
正確答案: A,B,D
解析:
addEvent不是一個事件
17.Jq中關於dom 增刪改的操作有
A append
B appendTo
C remove
D detach
正確答案: A,B,C,D
解析:
幾個都是dom操作的方法
18.jq中關於操作元素節點class屬性的操作有
A addClass
B removeClass
C attr(“class”, “box”)
D setClass
正確答案: A,B,C
解析:
A是添加類名
B是刪除類名
C是切換類名
19.下面可以實現繼承的有
A 構造函數繼承
B Object.create()
C 原型鏈繼承
D es6 extends
正確答案: A,B,C,D
解析:
前三種是es5中繼承,最后一個是es6的繼承
20.執行這個程序后打印的結果forEach=function (arr,fn) { for(var i=0,l=arr.length;i<l;i++){ var c=arr[i]; if(fn.call(c,i,c)===false){ return false; } } }; function box1(index,num) { console.log(index,num); } var arr=[10,9,8,7,6,5,4]; forEach(arr,box1)
A 0 10
B 3 7
C 2 4
D 5 5
正確答案: A,B,D

(三)

1.下列哪些屬性不是事件對象event的屬性
A clientX
B offsetX
C offsetLeft
D target
正確答案: C
解析:
offsetLeft為元素針對offsetParent的水平坐標,並不是事件對象中的鼠標位置

2.下列關於事件委托說法錯誤的是
A 事件委托可以解決事件綁定程序過多的問題
B 事件委托利用了事件捕獲原理
C 事件委托可以提高代碼性能
D 事件委托可以應用在click,onmousedown事件中
正確答案: B
解析:
事件委托利用的是事件冒泡的原理

3.要求用JavaScript實現下面的功能:在一個文本框中內容發生改變后,單擊頁面的其他部分將彈出一個消息框顯示文本框中的內容,下面語句正確的是
A
B
C
D <input type="text"onClick=“alert(value)”>
正確答案: B
解析:
onchange事件,在文本框內容發生變化切光標離開時觸發

4.阻止事件冒泡,使用以下哪個方法
A stopPropagation()
B preventDefault()
C cancelBubble = false
D return false
正確答案: A
解析:

5.阻止瀏覽器默認行為,使用以下哪個方法
A stopPropagation()
B preventDefault()
C cancelBubble = false
D return true
正確答案: B
解析:

6.下面可以獲取瀏覽器在卷動后,隱藏的文檔部分的高度的屬性是
A window.body.scrollTop
B document.body.scrollTop;
C document.scrolTop;
D documentElement.body.scrollTop
正確答案: B
解析:
基礎屬性

7.下列對的對常量的描述或定義不對的是
A 常量名只能用大寫
B const PI = 3.11;
C const pi = 3.14
D 常量定義后不能被修改
正確答案: A

8.在HTML頁面中,下列選項不屬於鼠標相關事件的是
A onclick
B onmouseover
C onmousedown
D onchange
正確答案: D
解析: D是表單事件

9.下面哪個事件屬性可以獲取鼠標光標到頁面可視區(瀏覽器邊框)水平坐標
A clientX
B offsetX
C pageX
D screenX
正確答案: A
解析:
基本屬性

10.JavaScript是運行在哪里的腳本語言
A server端(服務器端)
B web端(瀏覽器端)
C 在服務器運行后,把結果返回到客服端
D 在客戶端運行后,把結果返回到服務器
正確答案: B
解析:
js就是運行在瀏覽器中的腳本語言。

11.要檢測值是否為 NaN,應使用什么函數
A Number()
B parseInt()
C whoisNaN()
D isNaN()
正確答案: D
解析:
應記憶的方法

12.以下聲明變量錯誤的是
A var a;
B let a;
C const a;
D function a;
正確答案: D
解析:
A為ES5聲明變量,B、C為ES6聲明變量/常量方式

D為錯誤選項

13.以下ES6字符串拼接中最推薦使用的是以下哪種寫法?
A 今天天氣+很好
B 今天天氣${“很好”}
C 今天天氣+“很好”;D‘今天天氣+{“很好”};D 今天天氣+“很好”;D‘今天天氣+{很好};
正確答案: B
解析:
模板字符串的使用

14.以下選項中哪個是正則的量詞 :
A 100
B num
C +
D .
正確答案: C
解析:
+代表其前邊的字符重復1~無限多次

15.以下能獲取到所有子節點(包括文字節點)的屬性是 :
A firstElementChild
B children
C childNodes
D attributes
正確答案: C
解析:
A、獲取第一個元素節點

B、獲取所有元素子節點

C、獲取所有子節點,包含文本節點

D、獲取所有屬性節點

16.0.1+0.7 == 0.8 (0.1 + 0.7 計算結果是浮點數)
A true
B false
C Infinity
D NaN
正確答案: B
解析:
由於計算機存儲數字的特點,導致浮點數的計算存在誤差。

0.1+0.7 === 0.7999999999999999

所以結果為false

17.下列代碼的執行結果為 function fn(){ console.log( this ) }; fn();
A fn
B undefined
C window
D windows
正確答案: C
解析:
直接調用函數,其內部的this指向全局對象window

18.以下正則中不可以驗證數字的是
A /[0-9]/
B /\D/
C /0|1|2|3|4|5|6|7|8|9/
D /\d/
正確答案: B
解析:
\D匹配的是非數字

19.“hello”.repeat(3)的執行結果是
A hello
B hellooo
C helloooo
D hellohellohello
正確答案: D
解析:
repeat()的功能是將字符串重復參數指定的次數

20.html文檔中怎么區分節點對象的節點類型
A typeof
B type
C nodeType
D nodeName
正確答案: C
解析:
nodeType 屬性返回以數字值返回指定節點的節點類型。

如果節點是元素節點,則 nodeType 屬性將返回 1。

如果節點是屬性節點,則 nodeType 屬性將返回 2。

如果是文本內容,則 nodeType 屬性將返回 3。

21.下列代碼的執行結果是 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(減號會進行隱式轉換)

22.下列代碼的執行結果是 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的時候;

23.下列哪個不是Math對象的方法
A sort()
B floor()
C random()
D abs()
正確答案: A
解析:
sort()是數組的方法

24.關於mouseenter的說法,正確的是
A 與mouseup效果相同
B 當鼠標指針進入元素時,會發生mouseenter事件
C 和mouseover完全沒有區別
D 與mousemove效果相同
正確答案: B
解析:
和mouseover效果相同,但是比mouseover好,不會引起冒泡

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.下列關於window.onload事件的相關說法正確的是
A window.onload事件可能觸發多次
B window.onload事件是指的 DOM結構加載完成之后
C window.onload 事件可以綁定多個處理函數,並且都會觸發
D window.onload 事件在頁面所有的內容都加載完畢之后才觸發
正確答案: D
解析:
在文檔裝載完成后會觸發 load 事件。此時,在文檔中的所有對象都在DOM中,所有圖片,腳本,鏈接以及sub-frames都完成了裝載。

29.下面的代碼段,執行后的輸出結果是 var x=“15”; str=x+5; A=parseFloat(str); document.write(A);
A 20
B 20.O
C NaN
D 155
正確答案: D
解析:
字符串拼接 15 + 5 結果為 155 轉換成數字

30.下列代碼的執行結果為var fn = “hello”;fn();function fn(){ console.log(“world”)};
A “hello”
B “world”
C undefined
D fn is not function
正確答案: D
解析:
變量聲明提升&函數聲明提升之后,結果為

var fn;

function fn(){ console.log(“world”) };

fn = “hello”

fn()

此時fn已經是一個字符串,調用失敗,報錯

1.下列哪個選項可以阻止事件冒泡(考慮兼容情況)
A window.event.cancelBubble=true
B e.preventDefault()
C e.stopPropagation()
D window.event.cancelBubble=false
正確答案: A,C
解析:
兼容IE 和 高級瀏覽器

2.實現一個元素的拖拽,至少需要那幾個事件,請選擇
A onmousedown
B onmousemove
C onmouseup
D onmouseover
正確答案: A,B,C
解析:

3.下面表示定時器的有
A keyframes
B setInterval
C setTimeOut
D animate
正確答案: B,C
解析:
111

4.下面哪些是es6新增的
A 箭頭函數
B 解構賦值
C let關鍵字
D class 定義類
正確答案: A,B,C,D
解析:
111

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

6.對事件委托的說法正確的是
A 所有的事件都可以實現事件委托;
B 減少了事件綁定瀏覽器重繪的次數,提高了程序的執行效率;
C 減少事件的冗余綁定,節約了事件資源。
D 可以解決動態添加的元素節點無法綁定事件的問題;
正確答案: B,C,D
解析:
33

7.對事件綁定的說法正確的是
A 傳統事件綁定(dom.onclick),不能同時綁定多個同一事件,后面的會覆蓋前面的;
B 利用事件監聽不能完成事件的綁定
C addEventListener()方法可以實現事件的綁定
D 傳統事件觸發,只能經過冒泡階段,不經過捕獲階段;
正確答案: A,C
解析:
1111

8.事件中會產生哪些兼容問題
A 事件對象的創建
B 事件冒泡
C 瀏覽器的默認行為
D 事件委托中事件源的獲取
正確答案: A,B,C,D
解析:
222111

9.將字符串轉成大寫和小寫的方法是
A str.toSmallCase()
B str.toLowerCase()
C str.toUpperCase()
D str.toUpperChars()
正確答案: B,C
解析:

10.var a=“10”,以下能實現字符串轉成數字的是
A a*1
B Number(a)
C a-0
D a+0
正確答案: A,B,C
解析:

11.下面哪些是全局方法
A prompt()
B match()
C alert()
D confirm()
正確答案: A,C,D
解析:
uuu

12.下面哪些屬於數組的方法
A sort( )
B push()
C indexOf()
D join()
正確答案: A,B,C,D
解析:

13.可以用來遍歷字符串的語句有
A for-in
B for
C for-of
D forEach
正確答案: A,B,C
解析:
Array.prototype.forEach 為數組對象的方法,不能遍歷字符串

14.給元素添加事件監聽正確的方法有
A oDiv.onclick()
B oDiv.attachEvent()
C oDiv.addEventListener()
D oDiv.detachEvent()
正確答案: B,C
解析:
A的正確用法為oDiv.onclick = function () {}

D為IE8接觸事件綁定的方法

15.以下字符串方法支持正則表達式的有哪些
A indexOf
B match
C replace
D search
正確答案: B,C,D
解析:
字符串的一些方法是和正則一起使用比較多的,比如match()匹配、replace()替換、search()查找

16.假設有一輸入框的DOM名稱為otxt,以下能獲取輸入框值(value)的是
A otxt.getAttribute(“value”)
B otxt.value
C otxt[“value”]
D otxt.getValue()
正確答案: A,B,C
解析:
getAttribute()是獲取屬性值的方法,因為value就是屬性值,otxt.value和otxt[“value”]都可以獲取屬性值,所以ABC正確,D選項,沒有getValue()方法,錯誤

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.下面哪些方法不是正則的方法
A search()
B match ()
C replace ( )
D test ()
正確答案: A,B,C
解析:
ABC都是字符串方法

19.判斷str是否含有字符串"abc",以下不正確的是
A str.repl(/abc/)!=-1
B str.indexOf(‘abc’) >= 0
C str==‘abc’
D ‘abc’.includes(str)
正確答案: A,C,D
解析:
A選項:字符串沒有index()方法,錯誤;

B選項:indexOf()就是檢測數組是否含有某個數的,有返回下標,沒有返回-1,正確選項

C選項:str=='abc’這個是檢測完全匹配的,不能檢測到是否包含有,這個寫法要完全匹配才正確,所以錯誤

D選項:字符串沒有includes()方法,這個方法是數組的方法,錯誤

20.解構賦值可以做到以下哪些事
A 一次性可以定義多個變量
B 可以作用在函數的傳參上,以對象的方式傳遞,參數順序也無須保持一致
C 可以輕松實現兩個數的交換
D 可以實現一個函數返回多個結果
正確答案: A,B,C,D


免責聲明!

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



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