ES5中不能實現繼承的關鍵字
A prototype
B call
C apply
D extends
正確答案: D extends //屬于ES6
不屬于常見23種設計模式
A 單例
B MVC
C 觀察者
D 策略
正確答案: B
創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
有代碼 var obj1={ a:[1], b:1 }; var obj2={ a:[2], c:2 }; var obj = Object.assign(obj1,obj2); 運行之后obj的結果為
A {a:[1],b:1}
B {a:[1,2],b:1,c:2}
C {a:[2],b:1,c:2}
D {a:[2],c:2}
正確答案: C
解析:Object.assign是ES6新添加的接口,主要的用途是用來合并多個JavaScript的對象。
Object.assign() 方法用于將所有可枚舉屬性的值從一個或多個源對象復制到目標對象,且返回目標對象
Object.assign(target, …sources)
var target = {a : 1}; //目標對象
var source1 = {b : 2}; //源對象1
var source2 = {c : 3}; //源對象2
var source3 = {c : 4}; //源對象3,和source2中的對象有同名屬性c
Object.assign(target,source1,source2,source3);
對于js閉包的理解,以下說法錯誤的是
A 一個閉包就是當一個函數返回時,一個沒有釋放資源的棧區
B 閉包能夠訪問一個函數中的局部變量
C 閉包使用不當會造成內存泄露
D 閉包需定義在匿名函數里
正確答案: D
解析:閉包是函數中的函數,不一定非得在匿名函數中
可以通過以下哪個運算符或方法判斷一個實例屬于某個類
A typeof
B instanceof
C isPrototypeOf
D hasOwnProperty
正確答案: B
解析:instanceof可以判斷一個實例屬于某個類
關于原型對象以下說法錯誤的是
A 每一個函數都有一個原型對象
B 每一個構造函數都有一個原型對象
C 原型對象上的屬性和方法能被實例訪問
D 原型對象上的屬性和方法能被子類(代碼里)訪問
正確答案: D
解析: 原型對象上的屬性和方法能被實例訪問
以下哪一個不是常見的設計模式
A 單例模式
B 代理模式
C 飛行模式
D 觀察者模式
正確答案: C
解析:飛行模式,手機里才有的模式!
有代碼 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
有代碼 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
下列哪一項不是jquery進行文檔操作的方法
A append()
B inner()
C wrap()
D clone() $(selector).clone(includeEvents)
正確答案: B
解析:inner() 不是
//wrap() 方法把每個被選元素放置在指定的 HTML 內容或元素中。
//append() 方法在被選元素的結尾(仍然在內部)插入指定內容。
//clone() 方法生成被選元素的副本,包含子節點、文本和屬性。
以下程序最后計算的結果是 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
解析:這是閉包的使用
函數的length屬性是
A 函數的行數
B 函數的參數個數
C 函數的返回個數
D 永遠是0
正確答案: B
解析:函數的length是參數的個數
下列輸出結果正確的是 var a = 0;
var obj = {
fn : function(a){
a = 2;
a --;
}
}
obj.fn(a);
alert(a);
A 0
B 1
C 2
D 報錯
正確答案: A
下列代碼輸出的結果是 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
下列箭頭函數書寫正確的是
A 0–{}
B a,b => {}
C _ =>
D caller
正確答案: C
JS中,下面哪個不是創建函數的方式
A 聲明函數
B 函數表達式
C Function構造函數
D class函數
正確答案: D
在構造函數中,可以在一個屬性后添加方法,該屬性為
A prototype
B prototype
C proto
D prototype
正確答案: B
面向對象,你需要經過哪幾步,說法錯誤的是
A OOA 面向對象分析
B OOD 面向對象設計
C OOC 面向對象獲取
D OOP 面向對象編程
正確答案: C
jQuery中可以使用哪個可以實現事件委托的綁定
A add
B on
C bind
D click
正確答案: B
下面哪種不是jquery的選擇器
A 基本選擇器
B 后代選擇器
C 類選擇器
D 進一步選擇器
正確答案: D
關于閉包理解,下列描述錯誤的是
A 閉包就是能夠訪問自由變量的函數
B 如果閉包使用不當,容易造成內存泄漏
C 使用閉包常見的方式有傳入一個函數參數,或者返回一個函數
D 閉包函數運行結束后,其中產生的數據會隨著函數的結束而自動銷毀掉
正確答案: D
解析:概念題,普通函數內的局部變量在函數調用結束后自動銷毀
閉包函數運行結束后,產生的數據仍會保存在內存中
jQuery中的delay方法的作用是
A 停止動畫執行
B 暫停動畫執行
C 延遲動畫執行
D 開始動畫執行
正確答案: C
什么是閉包
A 閉包是指有權訪問另一個函數作用域中的變量的函數
B 閉包是指有權訪問任意函數作用域中的變量的函數
C 閉包是指有權訪問全局個函數作用域中的變量的函數
D 閉包是指有權訪問局部個函數作用域中的變量的函數
正確答案: A
構造函數繼承的原理是
A 改變構造函數的this
B 調用父類構造函數,并改變其中的this
C 調用本類構造函數,并改變其中的this
D 調用父類構造函數
正確答案: B
解析:使用call或apply改變父類構造函數的this指向,并讓其代碼執行
( d o c u m e n t ) . r e a d y ( ) 和 w i n d o w . o n l o a d 有 什 么 區 別 A w i n d o w . o n l o a d 方 法 是 在 網 頁 中 所 有 的 元 素 完 全 加 載 到 瀏 覽 器 后 才 執 行 , (document).ready()和window.onload 有什么區別 A window.onload方法是在網頁中所有的元素完全加載到瀏覽器后才執行,(document).ready()和window.onload有什么區別Awindow.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指文檔加載完畢
jq中實現動畫的方法是
A $.animate
B $().animate
C animate
D . s t a r t M o v e 正 確 答 案 : B 解 析 : a n i m a t e ( ) 是 j Q u e r y 實 例 方 法 , 調 用 示 例 : .startMove 正確答案: B 解析:animate()是jQuery實例方法,調用示例:.startMove正確答案:B解析:animate()是jQuery實例方法,調用示例:(“div”).animate()
在用瀏覽器查看網頁時出現404錯誤可能的原因是 ( ) 代表網頁不存在沒有找到文件
A 頁面源代碼錯誤
B 文件不存在
C 與數據庫連接錯誤
D 權限不足
正確答案: B
php的源碼是( ) 開源語言
A 開放的
B 封閉的
C 需購買的
D 完全不可見的
正確答案: A
運行下來代碼,返回結果是 function fn3(num) {
this.a=num;
fn4(this);
}
function fn4(obj) {
obj.b=10;
obj.c=20;
}
var obj1={};
fn3.call(obj1,10);
console.log(obj1);
A {a:10,b:10,c:20}
B {a:20,b:10,c:20}
C {a:10,b:10,c:10}
D {a:10,b:20,c:20}
正確答案: A
解析:call方法的使用
以下運行的結果是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 的實例
不能進行強制類型轉化的為
A parseInt
B parseFloat
C Number
D Math.floor
正確答案: D
解析:floor() 方法返回小于等于x的最大整數。語法Math.floor(x)如果傳遞的參數是一個整數,該值不變。
parseInt() 函數可解析一個字符串,并返回一個整數。
parseFloat() 函數可解析一個字符串,并返回一個浮點數。
Number 對象是原始數值的包裝對象。
Number 創建方式 new Number()。
不屬于同源策略限制條件的
A 端口
B 協議
C 域名
D 網址
正確答案: D
不屬于面向的對象思想的是
A 封裝
B 繼承
C 多態
D 抽象
正確答案: D
有代碼 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
有代碼 function foo(){ var a=10; return function(){ console.log(a++) } } foo()(); 運行之后,會在控制臺中打印
A 10
B 11
C 函數體
D 報錯
正確答案: A
解析:a++,加加在后,先賦值后加
arguments對象是
A 函數中的參數
B 函數中參數的數組
C 函數中含有參數的偽數組對象
D 空
正確答案: C
解析:參數數組
call和applay一下說法不正確的是
A 可以執行函數
B 可以帶入參數
C 可以改變調用函數中this的指向
D 可以創建函數
正確答案: D
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
關于this的幾種表述錯誤的是
A this所在函數是事件處理函數,this是事件源
B this所在函數沒有明確額的隸屬對象,那么this是window對象
C Let a = 123; 那么this.a中的this表示window對象
D this所在函數是構造函數時,this是new出來的對象
正確答案: A
關于設計模式,下面哪個是錯誤的
A 工廠方法模式
B 路由器模式
C 策略模式
D 觀察者模式
正確答案: B
在ES6(2015)中,哪個是原先沒有的名詞
A 函數
B 類
C 遞歸
D 過程
正確答案: B
以下哪個方法不能發起異步請求
A $.get()
B $.post()
C $.json()
D . a j a x ( ) 正 確 答 案 : C 解 析 : A 、 B 、 D 均 是 j q u e r y 類 本 身 的 異 步 請 求 方 法 C 選 擇 項 中 的 .ajax() 正確答案: C 解析:A、B、D均是jquery類本身的異步請求方法 C選擇項中的.ajax()正確答案:C解析:A、B、D均是jquery類本身的異步請求方法C選擇項中的.json()為干擾項,無此用法
混合繼承是
A 混合了構造函數繼承和原型鏈繼承
B 其它都不對
C 混合了es6繼承和原型鏈繼承
D 混合了構造函數繼承和es6繼承
正確答案: A
jq中設置屬性的方法是
A attr
B setAttr
C getAttr
D attribute
正確答案: A
解析:attr()可以接受兩個參數,一個參數表示獲取屬性值,兩個參數表示設置屬性值
jq中發起添加類名的方法是
A ajax
B addClass
C getClass
D setClass
正確答案: B
php定義變量正確的是
A var a = 5;
B $a = 10;
C int b = 6
D var $a = 12;
正確答案: B
在用瀏覽器查看網頁時出現404錯誤可能的原因是 ( ) 代表網頁不存在沒有找到文件
A 頁面源代碼錯誤
B 文件不存在
C 與數據庫連接錯誤
D 權限不足
正確答案: B
同步和異步執行分別表示什么含義()
A 按順序依次執行和同時分開執行
B 同時分開執行和按順序依次執行
C 按一致的速度執行和按不同的速度執行
D 按相同的步驟執行和按不同的步驟執行
正確答案: A
解析:生活中的同步和代碼中的不一樣
XMLHttpRequest 對象的 status 屬性表示當前請求的 http 狀態碼,其中()表示正確返回。
A 200
B 301
C 500
D 404
正確答案: A
解析:500服務器錯誤,301重定向,404請求資源未找到
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 對象比實例返回優先級更高
下面函數運行的結果是 function fn6(fn) { return fn(3,5); } function fn7(a,b) { return a+b; } function fn8(a,b) { return a*b; } var s=fn6(fn7); var s1=fn6(fn8); console.log(s,s1);
A 3,5
B 5,3
C 8,15
D 15,8
正確答案: C
解析:這是一個回調函數的使用
閉包的好處說法不對的
A 緩存變量
B 防止命名沖突
C 可能造成內存泄露
D 減少內存使用率
正確答案: D
ES5中不能實現繼承的關鍵字
A prototype
B call
C apply
D extends
正確答案: D
不屬于面向的對象思想的是
A 封裝
B 繼承
C 多態
D 抽象
正確答案: D
有代碼 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
關于原型對象以下說法錯誤的是
A 每一個函數都有一個原型對象
B 每一個構造函數都有一個原型對象
C 原型對象上的屬性和方法能被實例訪問
D 原型對象上的屬性和方法能被子類(代碼里)訪問
正確答案: D
解析:原型對象上的屬性和方法能被實例訪問
有代碼 function foo(){ var a=10; return function(){ console.log(a++) } } foo()(); 運行之后,會在控制臺中打印
A 10
B 11
C 函數體
D 報錯
正確答案: A
解析:a++,加加在后,先賦值后加
下列jquery對象方法中返回布爾值的是
A not()
B has()
C hasClass()
D fiter()
正確答案: C
解析:hasClass()有類名返回true,沒有返回false
有代碼 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
關于jquery插件,描述錯誤的是
A 使用jquery插件可以提高開發效率
B jquery插件可以通過jquery對象調用
C jquery插件無法實現鏈式調用
D jquery插件一般都需要考慮參數設置問題
正確答案: C
解析:只要返回值是jq中的對象,就可以鏈式調用
下面程序返回的值是 var obj={ _instance:null, createDiv:function () { if(!this._instance){ this._instance=document.createElement(“div”); } return this._instance; } }; var div1=obj.createDiv(); var div2=obj.createDiv(); console.log(div1===div2);
A true
B false
C 報錯
正確答案: A
解析:這是一個單例的使用
以下不是閉包特點的是
A 函數嵌套函數
B 函數內部可以引用外部的參數和變量
C 參數和變量不會被垃圾回收機制回收
D 返回的函數可以不用存儲在外部變量中
正確答案: D
解析:返回的函數必須存儲在外部變量中
函數的length屬性是
A 函數的行數
B 函數的參數個數
C 函數的返回個數
D 永遠是0
正確答案: B
解析:函數的length是參數的個數
執行下列程序的結果會是 var obj1=(function(){ return { a:1, b:2, fun2:function(){ console.log(this.a+this.b); } } })(); obj1.fun2();
A 3
B 4
C 1
D 2
正確答案: A
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
var name = 10; var obj = {} console.log(name + 10 + obj )
A 20[object Object]’
B ‘1010[object Object]’
C “1010”
D 20
正確答案: B
在jQuery中$變量是什么數據類型
A object
B array
C number
D function
正確答案: A
jQuery中判斷元素是否包含某個類名的方法是
A headClass
B hadClass
C haveClass
D hasClass
正確答案: D
關于閉包理解,下列描述錯誤的是
A 閉包就是能夠訪問自由變量的函數
B 如果閉包使用不當,容易造成內存泄漏
C 使用閉包常見的方式有傳入一個函數參數,或者返回一個函數
D 閉包函數運行結束后,其中產生的數據會隨著函數的結束而自動銷毀掉
正確答案: D
解析:概念題,普通函數內的局部變量在函數調用結束后自動銷毀
閉包函數運行結束后,產生的數據仍會保存在內存中
什么是閉包
A 閉包是指有權訪問另一個函數作用域中的變量的函數
B 閉包是指有權訪問任意函數作用域中的變量的函數
C 閉包是指有權訪問全局個函數作用域中的變量的函數
D 閉包是指有權訪問局部個函數作用域中的變量的函數
正確答案: A
原型的概念
A 每聲明一個function,都有prototype原型,prototype原型是函數的一個默認屬性,在函數的創建過程中由js編譯器自動添加
B 每聲明一個對象,都有prototype原型,prototype原型是函數的一個默認屬性,在函數的創建過程中由js編譯器自動添加
C 每聲明一個function,都有__proto___原型,prototype原型是函數的一個默認屬性,在函數的創建過程中由js編譯器自動添加
D 每聲明一個function,都沒有prototype原型,prototype原型是函數的一個默認屬性,在函數的創建過程中由js編譯器自動添加
正確答案: A
解析:原理題,每一個函數都有一個原型對象prototype
jq中發起添加類名的方法是
A ajax
B addClass
C getClass
D setClass
正確答案: B
在用瀏覽器查看網頁時出現404錯誤可能的原因是 ( ) 代表網頁不存在沒有找到文件
A 頁面源代碼錯誤
B 文件不存在
C 與數據庫連接錯誤
D 權限不足
正確答案: B
一個php后綴的文件,可以在什么環境下執行()
A mysql數據庫
B 瀏覽器
C Apache服務器
D Windows系統
正確答案: C
HTTP協議的默認端口號是多少?( )
A 8080
B 8888
C 80
D 3306
正確答案: C
XMLHttpRequest 對象的 status 屬性表示當前請求的 http 狀態碼,其中()表示正確返回。
A 200
B 301
C 500
D 404
正確答案: A
解析:500服務器錯誤,301重定向,404請求資源未找到
執行下列程序的結果是 function fn3() { arguments.callee.play(); } fn3.play=function () { console.log(“aaa”); }; fn3()
A 報錯
B 空值
C play
D “aaa”
正確答案: D
解析:callee的使用
callee是對象的一個屬性,該屬性是一個指針,指向參數arguments對象的函數。
callee 是 arguments 對象的一個屬性。它可以用于引用該函數的函數體內當前正在執行的函數。這在函數的名稱是未知時很有用,例如在沒有名稱的函數表達式 (也稱為“匿名函數”)內。