IT技術(shù)

實(shí)用的jQuery代碼段面試題
作者:
來源: 網(wǎng)絡(luò)
發(fā)布日期: 2018/3/12 11:27:06
點(diǎn)擊量: 3619次
【 字體:
背景顏色:

1.請(qǐng)簡(jiǎn)要說明jQuery框架的顯著特點(diǎn)。 

答:jQuery強(qiáng)調(diào)的理念是寫的少,做的多(write less,do more)。其主要特點(diǎn)有:輕量級(jí)、強(qiáng)大的選擇器、漂亮的DOM操作封裝、可靠的事件處理機(jī)制、完善的Ajax處理、出色的瀏覽器兼容性、鏈?zhǔn)讲僮鞣绞?、豐富的插件支持、開源產(chǎn)品。 

2.eval是做什么的? 

答:eval功能是把對(duì)應(yīng)的字符串解析成JS代碼并運(yùn)行;但不安全,非常耗性能。  

3.null與undefined的區(qū)別?  

答:Undefined類型只有一個(gè)值,即undefined,當(dāng)聲明的變量還未被初始化時(shí),變量的默認(rèn)值為undefined。Null類型也只有一個(gè)值,即null,null用來表示尚未存在的對(duì)象,常用來表示函數(shù)企圖返回一個(gè)不存在的對(duì)象。  

4.談?wù)剬?duì)this對(duì)象的理解。  

答:this是js的一個(gè)關(guān)鍵字,隨著函數(shù)使用場(chǎng)合不同,this的值會(huì)發(fā)生變化。但是有一個(gè)總原則,那就是this指的是調(diào)用函數(shù)的那個(gè)對(duì)象。 

 5.use strict是什么意思?  

答:表示代碼標(biāo)志為“嚴(yán)格模式”,則其中運(yùn)行的所有代碼都必然是嚴(yán)格模式下的。如果在語法檢測(cè)時(shí)發(fā)現(xiàn)語法問題,則整個(gè)代碼塊失效,并導(dǎo)致一個(gè)語法異常。如果在運(yùn)行期出現(xiàn)了違反嚴(yán)格模式的代碼,則拋出執(zhí)行異常。  

6.簡(jiǎn)述new操作符的功能。  

答:(1)創(chuàng)建一個(gè)空對(duì)象,使用this變量引用該對(duì)象,同時(shí)還繼承了該函數(shù)的原型 (2)屬性和方法被加入到this引用的對(duì)象中。(3)新創(chuàng)建的對(duì)象由this所引用,并且最后隱式的返回this。 

 7.描述typeof關(guān)鍵字的功能。 

 答:typeof可用來判斷一個(gè)變量是否為空或是什么類型的變量。typeof一般只能返回如下幾個(gè)結(jié)果:number、boolean、string、function、object、undefined。  

8.描述instanceof關(guān)鍵字的功能。  

答:instanceof可用來判斷一個(gè)變量是否為空或是什么類型的變量。如果想判斷一個(gè)變量是否某個(gè)對(duì)象的實(shí)例建議使用instanceof關(guān)鍵字。  

9.簡(jiǎn)述hasOwnProperty函數(shù)的功能。  

答:hasOwnProperty函數(shù)是用來判斷一個(gè)對(duì)象是否有你給出名稱的屬性或?qū)ο?。不過需要注意的是,此方法無法檢查該對(duì)象的原型鏈中是否具有該屬性,該屬性必須是對(duì)象本身的一個(gè)成員。  

10.簡(jiǎn)述一下isPrototypeOf函數(shù)的功能。 

答:isPrototypeOf函數(shù)是用來判斷要檢查其原型鏈的對(duì)象是否存在于指定對(duì)象實(shí)例中,是則返回true,否則返回false。  

11.談?wù)剬?duì)JSON的了解。

 答:JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式。其是基于JavaScript的一個(gè)子集,具有數(shù)據(jù)格式簡(jiǎn)單,易于讀寫,占用空間小的特點(diǎn)。  

12.Ajax是什么?  

答:AJAX即“Asynchronous Javascript+XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,對(duì)網(wǎng)頁的某部分進(jìn)行更新。  

13.同步請(qǐng)求和異步請(qǐng)求的區(qū)別?  

答:  ? 同步:提交請(qǐng)求→等待服務(wù)器處理→處理完畢返回,這個(gè)期間客戶端瀏覽器不能干任何事。 ? 異步:請(qǐng)求通過事件觸發(fā)→服務(wù)器處理(這是瀏覽器仍然可以作其他事情)→處理完畢。 

14.jQuery如何解決跨域問題?  

答:借助JSONP這個(gè)非官方的協(xié)議,其允許在服務(wù)器端集成script tags返回至客戶端,通過callback的形式實(shí)現(xiàn)跨域訪問JSONP即JSON with Padding。如果要進(jìn)行跨域請(qǐng)求,我們可以通過使用html的script標(biāo)記來進(jìn)行跨域請(qǐng)求,并在響應(yīng)中返回要執(zhí)行的script代碼,其中可以直接使用JSON傳遞javascript對(duì)象。  

15.異步加載的方式有哪些?  

答:  (1)defer,只支持IE;(2)async;(3)創(chuàng)建script,插入到DOM; 

16.如何編寫高性能的jQuery代碼?  

答:定義jQuery變量的時(shí)候添加var關(guān)鍵字;DOM操作請(qǐng)務(wù)必記住緩存(cache);盡量使用鏈?zhǔn)讲僮?;盡量把一些代碼都整合到一起;避免使用全局類型的選擇器;盡量使用.on方法,因?yàn)槠渌魏畏椒ǘ际亲罱K使用.on方法來實(shí)現(xiàn)的;盡量使用最新版本的jQuery框架類庫。  

17.jQuery與jQuery UI有啥區(qū)別? 

答:(1)jQuery是一個(gè)js庫,主要提供的功能是選擇器,屬性修改和事件綁定等等。  (2)jQuery UI則是在jQuery的基礎(chǔ)上,利用jQuery的擴(kuò)展性,設(shè)計(jì)的插件。提供了一些常用的界面元素,諸如對(duì)話框、拖動(dòng)行為、改變大小行為等等。  

18.描述基于class的選擇器與基于id選擇器在性能上的區(qū)別。 

答:基于class的選擇性的性能相對(duì)于基于id選擇器開銷很大,因?yàn)槠湫枰闅v所有DOM元素。  

19.jQuery鏈?zhǔn)秸{(diào)用的最大優(yōu)點(diǎn)是什么?  

答:避免頻繁操作的DOM,鏈?zhǔn)秸{(diào)用可以實(shí)現(xiàn)先緩存再操作。 

20.一句話說明內(nèi)存泄漏的定義。  

答:內(nèi)存泄漏指任何對(duì)象在您不再擁有或需要它之后仍然存在。 

21.那些操作會(huì)造成內(nèi)存泄漏?  

答:  ? 給DOM對(duì)象添加的屬性是一個(gè)對(duì)象的引用。 ? DOM對(duì)象與JS對(duì)象相互引用。 ? 給DOM對(duì)象用attachEvent綁定事件。  ? 從外到內(nèi)執(zhí)行appendChild,這時(shí)即使調(diào)用removeChild也無法釋放。 ? 反復(fù)重寫同一個(gè)屬性會(huì)造成內(nèi)存大量占用。 

22.描述垃圾回收器的功能。  

答:垃圾回收器定期掃描對(duì)象,并計(jì)算引用了每個(gè)對(duì)象的其他對(duì)象的數(shù)量。如果一個(gè)對(duì)象的引用數(shù)量為0(沒有其他對(duì)象引用過該對(duì)象),或?qū)υ搶?duì)象的惟一引用是循環(huán)的,那么該對(duì)象的內(nèi)存即可回收。  

23.documen.write和innerHTML的區(qū)別?  

答:document.write只能重繪整個(gè)頁面,innerHTML可以重繪頁面的一部分。  

24.jQuery框架的源碼看過嗎?能不能簡(jiǎn)單說一下它的實(shí)現(xiàn)原理?  

答:jQuery框架通過改變javascript編碼方式來創(chuàng)建了全新的編程理念。譬如關(guān)于jQuery聲明的流程:先查找(創(chuàng)建)jQuery對(duì)象,然后調(diào)用jQuery對(duì)象的方法完成我們需要完成的工作。jQuery就是以這種可以說是最簡(jiǎn)單的編碼邏輯來改變javascript編碼方式的,這個(gè)流程就是jQuery的編碼邏輯核心。  

25.jQuery中如何將對(duì)象轉(zhuǎn)化為json字符串,然后再轉(zhuǎn)化回來? 

答:可以通過JSON.stringify方法把一個(gè)對(duì)象轉(zhuǎn)換成json字符串,再通過JSON.parse方法把一個(gè)json字符串解析成對(duì)象。  

26.描述一下.get()、[]和.eq()方法的區(qū)別。  

答:eq返回原生jQuery對(duì)象,截取某些el元素生成jQuery新對(duì)象;get和[]返回的都是原生的DOM對(duì)象,原理一致;get和[]區(qū)別是get是通過jQuery對(duì)象的方法獲取,[]是根據(jù)jQuery是一個(gè)數(shù)組對(duì)象獲取。  

27.描述一下context的概念。 

答:context就是限定查找的范圍,context必須是一個(gè)DOM元素,context底層還是用了.find()方法來實(shí)現(xiàn)的。  

28.描述一下.delegate()和.live()方法的區(qū)別。 

答:delegate方法指定了委托對(duì)象,live方法委托給了jQuery的context,1.9版本以后用on方法代替了。  

29.描述一下.attr()和.prop()方法的區(qū)別。  

答:.attr()方法是操作屬性節(jié)點(diǎn),.prop()方法是操作獲取到的對(duì)應(yīng)js對(duì)象的屬性。在遇到要獲取或設(shè)置checked、selected、readonly和disabled等屬性時(shí),用prop方法顯然更好。.prop()方法更高效,因?yàn)?attr()方法要訪問DOM。  

30.jQuery中的load方法一般怎么用的?  

答:load方法一般在載入遠(yuǎn)程HTML代碼并插入到DOM中的時(shí)候用,通常用來從Web服務(wù)器上獲取靜態(tài)的數(shù)據(jù)文件。如果要傳遞參數(shù)的話,可以使用$.get()或$.post()方法。

掃一掃在手機(jī)打開當(dāng)前頁

Contact

聯(lián)系我們

告訴我們您想要的吧!我們?yōu)楫?dāng)?shù)乜蛻籼峁I(yè)、及時(shí)的服務(wù)
地址:云南省昆明市白云路368號(hào)
電話:400-871-8716 (工作時(shí)間:09:00-18:00(周一至周五))
何總:23592693
李總:53815112
亚洲日韩在线a在线观看,欧美激情 在线观看,97色伦图片97综合影院,成人AV天堂一二三在线观看,欧美色吧视频在线观看,国产l精品国产亚洲区,久久综合亚洲图片,99久久国产综合精品1,久久AⅤ无码AV高潮AV喷吹,亚洲综合无码一区二区三区不卡
久久大香香蕉国产拍国| 久久香蕉国产观看猫咪3atv| 国产成人无码AV一区二区在线观看| 色婷婷久久综合中文久久一本`| 国产精品久久久久尤物| 久久99综合国产精品亚洲首页 | 天堂AⅤ无码一区二区三区| 永久免费午夜无码视频| 夜夜高潮夜夜爽夜夜爱爱一区| 久草香蕉视频在线观看| 精品国产综合成人亚洲区2022| 成人精品天堂一区二区三区| 国产在线精品一区二区高清不卡| 亚洲av无码专区在线观看亚| 久久国产精品一国产精品| 三级黄色AV网站| 亚洲乱码无码永久不卡在线| 国产精品女视频一区二区| 黄AV网站免费高清在线观看| jiZZ久久精品| 亚洲1000部禁片在线观看| 综合久久久久综合97色| 亚洲人成网站高清观看 | 日本欧美视频在线| 精品一区二区三区av| 男女爽到高潮的免费网站| 国产精品未满十八禁止观看| 精品国产国产综合精品| 久久99热精品免费观看动漫| 国产精品原创AV片国产综合| 欧美日韩一区二区综合在线视频| 久久99精品国产99久久| 亚洲色自偷自拍亚洲综合图片| 久久99热精品免费观看动漫| 国产成年无码AⅤ片在线观看| 久久大香香蕉国产拍国| 2021年最新久久久视精品爱| 亚洲va久久久噜噜噜久久男同| 日韩中文字幕v亚洲中文字幕| 久久免费看少妇高潮A片18禁| 欧美综合精品久久久久成人影院|