前端程序員面試分類真題11_第1頁
前端程序員面試分類真題11_第2頁
前端程序員面試分類真題11_第3頁
前端程序員面試分類真題11_第4頁
前端程序員面試分類真題11_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

前端程序員面試分類真題11一、多項(xiàng)選擇題1.

以下對JavaScript的理解中,錯(cuò)誤的是______A.JScript和JavaScript是等價(jià)的B.JavaScript脫離瀏覽器后就不能執(zhí)行C(江南博哥).JavaScript由ECMAScript、DOM和BOM組成D.JavaScript是一門弱類型的語言正確答案:AB[考點(diǎn)]基本語法[解析]雖然JavaScript和JScript都是ECMAScript的實(shí)現(xiàn),但兩者是由不同公司設(shè)計(jì)的,因此并不能完全畫等號。JavaScript主要運(yùn)行在一個(gè)內(nèi)置JavaScript解釋器的客戶端中,瀏覽器只是其中的一種。

2.

在嚴(yán)格模式中會拋出錯(cuò)誤的是______A.functionsum(x,x){}B.deletewindow.locationC.varx=010D.vareval="strick"正確答案:ABCD[考點(diǎn)]基本語法[解析]嚴(yán)格模式對JavaScript的語法和行為都做了一些更改,消除了語言中一些不合理、不確定和不安全之處。嚴(yán)格模式規(guī)定函數(shù)聲明中不能定義同名參數(shù),不能用delete運(yùn)算符刪除不可刪除的屬性,禁止使用以0為前綴的八進(jìn)制數(shù)字,不能將eval用作變量。根據(jù)這4個(gè)限制可知,執(zhí)行選項(xiàng)A、選項(xiàng)B、選項(xiàng)C和選項(xiàng)D中的代碼都會拋出錯(cuò)誤。

3.

以下是JavaScript數(shù)據(jù)類型的有______A.intB.stringC.booleanD.object正確答案:BCD[考點(diǎn)]基本語法[解析]在JavaScript中,數(shù)字類型由number表示,而不是選項(xiàng)A中的int。number類型支持十進(jìn)制、八進(jìn)制和十六進(jìn)制的整數(shù),還包括浮點(diǎn)數(shù)(雙精度數(shù)值)、時(shí)間日期、NaN和Infinity。

4.

在執(zhí)行時(shí)會發(fā)生異常的語句是______A.varobj=()B.varobj=//C.varobj={}D.varobj=[]正確答案:AB[考點(diǎn)]基本語法[解析]選項(xiàng)A中的圓括號內(nèi)需要有表達(dá)式,否則是無效語法;選項(xiàng)B會把兩根斜杠當(dāng)成注釋,從而讓這條語句變得不完整,發(fā)生異常;選項(xiàng)C是創(chuàng)建對象的一種簡寫形式;選項(xiàng)D是創(chuàng)建數(shù)組的一種簡寫形式。

5.

下列選項(xiàng)中,屬于JavaScript內(nèi)置對象的是______A.StringB.FunctionC.RegExpD.Array正確答案:ABCD[考點(diǎn)]對象[解析]當(dāng)JavaScript解釋器啟動(也就是瀏覽器加載新頁面)時(shí),會有一些可用的內(nèi)置對象(built-inobjects)被初始化,這些內(nèi)置對象包括:全局對象、String、Boolean、Number、Object、Function、Array、Date、RegExp、Error、Math和JSON。由此可知,4個(gè)選項(xiàng)都是內(nèi)置對象。

6.

在以下選項(xiàng)中,表示全局函數(shù)的有______A.ceil()B.parseInt()C.stringify()D.isNaN()正確答案:BD[考點(diǎn)]對象[解析]選項(xiàng)A中的ceil()是Math對象中的一個(gè)方法,會對一個(gè)數(shù)進(jìn)行向上取整;選項(xiàng)B中的parseInt()是一個(gè)全局函數(shù),能將字符串解析為指定基數(shù)的整數(shù);選項(xiàng)C中的stringify()是JSON對象中的一個(gè)方法,用于將JavaScript對象序列化為JSON字符;選項(xiàng)D中的isNaN()也是一個(gè)全局函數(shù),能夠判斷一個(gè)值是否是NaN。

7.

執(zhí)行下面的代碼后,對name屬性的描述中,錯(cuò)誤的是______

varobj={};

Object.defineProperty(obj,"name",{

configurable:false

});A.可以用delete運(yùn)算符刪除該屬性B.可以再把該屬性的configurable特性設(shè)為trueC.可以再修改為可枚舉特性(enumerable)D.可寫特性(writable)只能從true改為false正確答案:ABC[考點(diǎn)]對象[解析]在ECMAScript5中,屬性能夠設(shè)置自身的特性。當(dāng)屬性的configurable特性為false時(shí),將會有以下5種限制:

(1)不能用delete運(yùn)算符刪除此屬性,如果強(qiáng)行刪除,那么在嚴(yán)格模式中會拋出錯(cuò)誤。

(2)不能再變回可配置。

(3)不能再修改成可枚舉特性。

(4)可寫特性只能從true改為false,不能從false改為true。

(5)不能變成訪問器屬性。

8.

定義txt變量,指向一個(gè)<p>元素,以下能為該元素添加CSS類primary的選項(xiàng)有______A.txt.class="primary"B.txt.className="primary"C.txt.classList.add("primary")D.txt.classList.insert("primary")正確答案:BC[考點(diǎn)]控制元素[解析]在Element對象中有個(gè)className屬性,專門用于讀寫CSS類,因此可以像選項(xiàng)B那樣設(shè)置CSS類。HTML5為每個(gè)元素定義了classList屬性,該屬性保存著一個(gè)類數(shù)組對象,能對元素的CSS類進(jìn)行添加、檢測和移除等操作,選項(xiàng)C就是通過對象的add()方法來設(shè)置CSS類的。

9.

下列由鼠標(biāo)觸發(fā)的事件有______A.clickB.mouseoverC.keydownD.touchstart正確答案:AB[考點(diǎn)]事件處理和Ajax[解析]選項(xiàng)C中的keydown事件是由鍵盤觸發(fā)的,選項(xiàng)D中的touchstart是一種觸摸事件,專門用于移動設(shè)備。

10.

下列選項(xiàng)中,能通過jQuery的方式獲得代碼中單選框選中值的是______

<inputtype="radio"name="gender"value="1"/>

<inputtype="radio"name="gender"value="2"/>A.$(":radio:checked").val()B.$(":radio").Val()C.$("[name=gender]:checked").val()D.$("[name=gender]").Val()正確答案:AC[考點(diǎn)]jQuery[解析]jQuery中的:radio選擇器能匹配單選框元素,:checked選擇器能匹配處于選中狀態(tài)的元素,因此選項(xiàng)A能獲得選中值。選項(xiàng)C中方括號內(nèi)的選擇器能夠匹配name屬性為“gender”的元素,也就是兩個(gè)單選框,再與:checked組合就能獲得選中值。

11.

jQuery中被譽(yù)為工廠函數(shù)的是______A.ready()B.jQuery()C.$()D.function()正確答案:BC[考點(diǎn)]jQuery[解析]jQuery的工廠函數(shù)是選項(xiàng)B中的jQuery(),而該函數(shù)還有一個(gè)別名,也就是選項(xiàng)C中的“$”,用一個(gè)美元符號來代替函數(shù)名稱。

12.

jQuery包含的選擇器有______A.屬性選擇器B.表單選擇器C.ID選擇器D.類選擇器正確答案:ABCD[考點(diǎn)]jQuery[解析]jQuery不但支持傳統(tǒng)的CSS選擇器(例如ACD中的選擇器),還擴(kuò)展出了一套獨(dú)有的選擇器,例如過濾選擇器以及選項(xiàng)B中的表單選擇器等。

13.

在jQuery中,能遍歷同輩節(jié)點(diǎn)的方法是______A.siblings()B.closest()C.children()D.next()正確答案:AD[考點(diǎn)]jQuery[解析]同輩節(jié)點(diǎn)就是HTML文檔中的兄弟元素。選項(xiàng)A中的siblings()能選取匹配的兄弟元素;選項(xiàng)B中的closest()能選取最先匹配的祖先元素;選項(xiàng)C中的children()能選取匹配的子元素;選項(xiàng)D中的next()能選取后一個(gè)匹配的兄弟元素。

二、填空題1.

Number(012)返回的結(jié)果為______,Number("0xA")返回的結(jié)果為______。正確答案:10、10[考點(diǎn)]數(shù)據(jù)類型[解析]轉(zhuǎn)型函數(shù)Number()可以將非數(shù)字類型的值轉(zhuǎn)為數(shù)字。當(dāng)參數(shù)是數(shù)字時(shí),所有進(jìn)制的數(shù)都會按十進(jìn)制計(jì)算,第一個(gè)表達(dá)式中的八進(jìn)制數(shù)012經(jīng)過計(jì)算后的結(jié)果為10。當(dāng)參數(shù)是字符串時(shí),如果字符串是十六進(jìn)制數(shù),那么會先按十進(jìn)制計(jì)算,第二個(gè)表達(dá)式中的十六進(jìn)制數(shù)0xA經(jīng)過計(jì)算后得到的結(jié)果也為10。

2.

在下面的代碼中,Number()函數(shù)的參數(shù)是一個(gè)對象,最終的結(jié)果為______。

varnumberObj={

valueOf:function(){

return{};

},

toString:function(){

return"10";

}

};

Number(numberObj);正確答案:10[考點(diǎn)]數(shù)據(jù)類型[解析]當(dāng)參數(shù)是對象時(shí),先對其執(zhí)行ToPrimitive抽象操作,變?yōu)榛A(chǔ)類型的值,再進(jìn)行轉(zhuǎn)換。ToPrimitive的操作流程是先檢查是否有valueOf()方法,如果有并且返回基本類型的值(也就是不返回復(fù)雜的對象),那么就用它的返回值;如果沒有就改用toString()方法,再用它的返回值。對上面的numberObj執(zhí)行ToPrimitive抽象操作后得到的結(jié)果為10。

3.

~{}等于______,~1.25等于______。正確答案:-1、-2[考點(diǎn)]數(shù)據(jù)類型[解析]按位非運(yùn)算符(~)會先將所有值轉(zhuǎn)換為整數(shù),再以二進(jìn)制表示,最后執(zhí)行按位取反運(yùn)算(就是將二進(jìn)制位從0變?yōu)?,或從1變?yōu)?)。對null、undefined、字符串或?qū)ο蟮确菙?shù)字進(jìn)行按位非操作,返回的結(jié)果都為-1。對任意數(shù)值“X”進(jìn)行按位非的操作大致等同于“-(X+1)”,并且浮點(diǎn)數(shù)的小數(shù)部分會被截除。

4.

以下代碼最終在控制臺輸出的結(jié)果為______。

vara={},

b={name:"ping"},

c={name:"wen"};

a[b]=10;

a[c]=20;

console.log(a[b]);正確答案:20[考點(diǎn)]數(shù)據(jù)類型[解析]b和c都是對象,當(dāng)作為a對象的屬性名時(shí),會被轉(zhuǎn)換為字符串類型,兩個(gè)對象轉(zhuǎn)換后的值都為“[objectObject]”,兩句賦值語句相當(dāng)于下面的代碼。

a["[objectObject]"]=10;

a["[objectObject]"]=20;

5.

[]=![]得到的結(jié)果為______。正確答案:true[考點(diǎn)]數(shù)據(jù)類型[解析]根據(jù)運(yùn)算符的優(yōu)先級規(guī)則,先執(zhí)行表達(dá)式中邏輯非運(yùn)算符的計(jì)算,“![]”的計(jì)算結(jié)果為false,表達(dá)式變?yōu)椤癧]==false”??諗?shù)組能轉(zhuǎn)換為空字符串,表達(dá)式變?yōu)椤?"==false”。當(dāng)左操作數(shù)是字符串,右操作數(shù)是布爾值時(shí),右邊的布爾值要轉(zhuǎn)為數(shù)字,而false能轉(zhuǎn)為0,表達(dá)式就變?yōu)椤?"==0”。當(dāng)左操作數(shù)是字符串,右操作數(shù)是數(shù)字時(shí),字符串要轉(zhuǎn)為數(shù)字,空字符串能轉(zhuǎn)為數(shù)字0,0和0比較,返回true。

6.

[]+{}得到的結(jié)果為______,{}+[]得到的結(jié)果為______。正確答案:“[objectObject]”、0[考點(diǎn)]數(shù)據(jù)類型[解析]在第一個(gè)表達(dá)式中,空數(shù)組會變?yōu)榭兆址c空對象({})進(jìn)行字符串拼接,結(jié)果為“[objectObject]”。第二個(gè)表達(dá)式的“{}”并不是空對象,而是不執(zhí)行任何操作的空代碼塊,表達(dá)式的值由“+[]”計(jì)算得到,結(jié)果為0。

7.

false=="0"得到的結(jié)果為______,false==="0"得到的結(jié)果為______。正確答案:true、false[考點(diǎn)]數(shù)據(jù)類型[解析]相等運(yùn)算符(==)允許在比較中進(jìn)行類型轉(zhuǎn)換,而全等運(yùn)算符(===)禁止類型轉(zhuǎn)換。在第一個(gè)表達(dá)式中,由于左操作數(shù)是布爾值,右操作數(shù)是字符串,因此左操作數(shù)會轉(zhuǎn)換為數(shù)字,也就是0,表達(dá)式變?yōu)?="0"。當(dāng)左操作數(shù)是數(shù)字,右操作數(shù)還是字符串時(shí),右操作數(shù)也會轉(zhuǎn)換為數(shù)字,也就是0,兩者比較返回true。而第二個(gè)表達(dá)式進(jìn)行的是全等比較,不會有以上轉(zhuǎn)換過程,因此返回false。

三、簡答題1.

分號會在什么時(shí)候自動補(bǔ)全?自動補(bǔ)全有什么弊端?正確答案:一條語句會以分號(;)結(jié)束,語句之間也會用分號來隔開。分號可以增強(qiáng)腳本的可讀性和整潔性,但JavaScript并不強(qiáng)制使用分號。如果省略了分號并且無法正確解析代碼,那么JavaScript解釋器就會根據(jù)自己的判斷在某個(gè)位置插入分號。讓JavaScript自動補(bǔ)全分號很有可能改變代碼的行為,例如一條以“(、[、/、+、-”這些字符開頭的語句,有可能會與前一條語句合并在一起,作為一個(gè)整體被解析,代碼如下所示。平時(shí)養(yǎng)成良好的編程風(fēng)格,在句末補(bǔ)全分號,能夠避免很多不必要的錯(cuò)誤。

vartotal=sum

(x+y)

//相當(dāng)于

vartotal=sum(x+y);[考點(diǎn)]基本語法

2.

什么是嚴(yán)格模式?嚴(yán)格模式有哪些限制?正確答案:ECMAScript5引入了嚴(yán)格模式(strictmode)的概念。嚴(yán)格模式對JavaScript的語法和行為都做了一些更改,消除了語言中一些不合理、不確定、不安全之處;提供高效嚴(yán)謹(jǐn)?shù)牟铄e(cuò)機(jī)制,保證代碼安全運(yùn)行;禁用在未來版本中可能會使用的語法,為新版本做好鋪墊。在腳本文件第一行或函數(shù)內(nèi)第一行引入“usestrict”這條指令(代碼如下所示),就能觸發(fā)嚴(yán)格模式。這是一條沒有副作用的指令,老版的瀏覽器會將其作為一行字符串直接忽略。

"usestrict";

//腳本文件第一行

functionsum(x){

"usestrict";

//函數(shù)內(nèi)第一行

returnx;

}

嚴(yán)格模式常見的限制有以下幾條:

(1)所有的變量要先聲明,無法再意外創(chuàng)建全局變量。

(2)函數(shù)中this對象的默認(rèn)值是undefined,而不是全局對象(Window)。

(3)試圖使用delete運(yùn)算符刪除不可刪除的屬性會拋出異常。

(4)函數(shù)聲明中定義兩個(gè)或多個(gè)同名參數(shù)時(shí)將產(chǎn)生一個(gè)語法錯(cuò)誤,例如sum(x,x){)。

(5)禁止使用以0為前綴的八進(jìn)制數(shù)字(例如010),以0x為前綴還是支持的。

(6)禁止使用with語句。

(7)不能將eval和arguments用作變量、函數(shù)或參數(shù)的名稱。[考點(diǎn)]基本語法

3.

undefined和null有哪些異同?正確答案:先來了解一下undefined和null的相同部分,如下所列:

(1)都有空缺的意思。

(2)不包含方法和屬性。

(3)都是假值。

(4)都只有一個(gè)值。

再來了解一下兩者的不同部分,如下所列:

(1)含義不同,undefined表示一個(gè)未定義的值,null表示一個(gè)空的對象。

(2)類型不同,將typeof運(yùn)算符應(yīng)用于undefined,得到“undefined”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論