




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/ZHCA 023-2023面部毛孔緊致類化妝品功效評價(jià)方法
- 2025貴州醫(yī)科大學(xué)神奇民族醫(yī)藥學(xué)院輔導(dǎo)員考試試題及答案
- 2025貴陽職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試試題及答案
- 2025百色學(xué)院輔導(dǎo)員考試試題及答案
- T/ZGZS 0909-2023退役光伏組件梯次利用通用規(guī)范
- 急救配合流程標(biāo)準(zhǔn)化實(shí)施
- 包頭常鋁北方鋁業(yè)有限責(zé)任公司招聘筆試題庫2025
- 財(cái)務(wù)報(bào)表分析技能2025年試卷及答案
- 社工師職業(yè)資格考試試卷及答案2025年
- 2025年土木工程設(shè)計(jì)基礎(chǔ)考試試題及答案
- 24春國家開放大學(xué)《機(jī)械CADCAM》形考任務(wù)1-3參考答案
- 2024年高校教師崗前培訓(xùn)《高等教育學(xué)》題目100道附答案(綜合題)
- 施工升降機(jī)安裝驗(yàn)收表
- RBA-6.0-培訓(xùn)教材課件
- 《客艙安全與應(yīng)急處置》-課件:滅火設(shè)備:機(jī)載滅火瓶
- 國際關(guān)系史智慧樹知到期末考試答案2024年
- 上海中考英語語法專項(xiàng)練習(xí)題集和參考答案
- 辦公室安全事故分析
- 23秋國家開放大學(xué)《視覺設(shè)計(jì)基礎(chǔ)》形考任務(wù)1-5參考答案
- 衛(wèi)通通信系統(tǒng)-FDMA方式
- 2023淄博中考英語試題及答案
評論
0/150
提交評論