jQuery必知要点(一)
1. jQuery框架的顯著特點。
jQuery強調的理念是寫的少,做的多(write less。do more)。
其主要特點有:輕量級、強大的選擇器、美麗的DOM操作封裝、可靠的事件處理機制、完好的Ajax處理、出色的瀏覽器兼容性、鏈式操作方式、豐富的插件支持、開源產品。
2.eval是做什么的?
eval功能是把相應的字符串解析成JS代碼并執行;但不安全。很耗性能。
3.null與undefined的差別?
Undefined類型僅僅有一個值,即undefined。當聲明的變量還未被初始化時,變量的默認值為undefined。Null類型也僅僅有一個值,即null,null用來表示尚未存在的對象,經常使用來表示函數企圖返回一個不存在的對象。
4.對this對象的理解。
this是js的一個keyword,隨著函數使用場合不同,this的值會發生變化。
可是有一個總原則,那就是this指的是調用函數的那個對象。
5.use strict是什么意思?
表示代碼標志為“嚴格模式”,則當中執行的全部代碼都必定是嚴格模式下的。
假設在語法檢測時發現語法問題,則整個代碼塊失效。并導致一個語法異常。假設在執行期出現了違反嚴格模式的代碼。則拋出執行異常。
6.new操作符的功能。
(1)創建一個空對象,使用this變量引用該對象,同一時候還繼承了該函數的原型
(2)屬性和方法被增加到this引用的對象中。
(3)新創建的對象由this所引用。而且最后隱式的返回this。
7.typeofkeyword的功能。
typeof可用來推斷一個變量是否為空或是什么類型的變量。
typeof一般僅僅能返回例如以下幾個結果:number、boolean、string、function、object、undefined。
8.instanceofkeyword的功能。
instanceof可用來推斷一個變量是否為空或是什么類型的變量。假設想推斷一個變量是否某個對象的實例建議使用instanceofkeyword。
9.hasOwnProperty函數的功能。
hasOwnProperty函數是用來推斷一個對象是否有你給出名稱的屬性或對象。只是須要注意的是。此方法無法檢查該對象的原型鏈中是否具有該屬性。該屬性必須是對象本身的一個成員。
10.一下isPrototypeOf函數的功能。
isPrototypeOf函數是用來推斷要檢查其原型鏈的對象是否存在于指定對象實例中。是則返回true,否則返回false。
11.對JSON的了解。
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。其是基于JavaScript的一個子集,具有數據格式簡單,易于讀寫,占用空間小的特點。
12.Ajax是什么?
AJAX即“Asynchronous Javascript+XML”(異步JavaScript和XML),是指一種創建交互式網頁應用的網頁開發技術。通過在后臺與server進行少量數據交換,AJAX能夠使網頁實現異步更新。
這意味著能夠在不又一次載入整個網頁的情況下,對網頁的某部分進行更新。
13.同步請求和異步請求的差別?
?
l? 同步:提交請求→等待server處理→處理完成返回。這個期間client瀏覽器不能干不論什么事。
l? 異步:請求通過事件觸發→server處理(這是瀏覽器仍然能夠作其它事情)→處理完成。
14.jQuery怎樣解決跨域問題?
借助JSONP這個非官方的協議,其同意在server端集成script tags返回至client,通過callback的形式實現跨域訪問JSONP即JSON with Padding。假設要進行跨域請求,我們能夠通過使用html的script標記來進行跨域請求,并在響應中返回要運行的script代碼,當中能夠直接使用JSON傳遞javascript對象。
15.異步載入的方式有哪些?
(1)defer,僅僅支持IE;
(2)async;
(3)創建script,插入到DOM;
16.怎樣編寫高性能的jQuery代碼?
定義jQuery變量的時候加入varkeyword;DOM操作請務必記住緩存(cache);盡量使用鏈式操作;盡量把一些代碼都整合到一起;避免使用全局類型的選擇器;盡量使用.on方法,由于其他不論什么方法都是終于使用.on方法來實現的;盡量使用最新版本號的jQuery框架類庫。
17.jQuery與jQuery UI有啥差別?
?
(1)jQuery是一個js庫。主要提供的功能是選擇器,屬性改動和事件綁定等等。
(2)jQuery UI則是在jQuery的基礎上,利用jQuery的擴展性,設計的插件。提供了一些經常使用的界面元素,諸如對話框、拖動行為、改變大小行為等等。
18.基于class的選擇器與基于id選擇器在性能上的差別。
基于class的選擇性的性能相對于基于id選擇器開銷非常大,由于其須要遍歷全部DOM元素。
19.jQuery鏈式調用的最大長處是什么?
避免頻繁操作的DOM,鏈式調用能夠實現先緩存再操作。
20.一句話說明內存泄漏的定義。
內存泄漏指不論什么對象在您不再擁有或須要它之后仍然存在。
21.那些操作會造成內存泄漏?
22.垃圾回收器的功能。
垃圾回收器定期掃描對象。并計算引用了每一個對象的其它對象的數量。
假設一個對象的引用數量為0(沒有其它對象引用過該對象)。或對該對象的惟一引用是循環的,那么該對象的內存就可以回收。
23.documen.write和innerHTML的差別?
document.write僅僅能重繪整個頁面。innerHTML能夠重繪頁面的一部分。
24.jQuery框架的源代碼的實現原理
jQuery框架通過改變javascript編碼方式來創建了全新的編程理念。譬如關于jQuery聲明的流程:先查找(創建)jQuery對象,然后調用jQuery對象的方法完畢我們須要完畢的工作。jQuery就是以這樣的能夠說是最簡單的編碼邏輯來改變javascript編碼方式的,這個流程就是jQuery的編碼邏輯核心。
25.jQuery中怎樣將對象轉化為json字符串,然后再轉化回來?
能夠通過JSON.stringify方法把一個對象轉換成json字符串,再通過JSON.parse方法把一個json字符串解析成對象。
26.get()、[]和.eq()方法的差別。
eq返回原生jQuery對象,截取某些el元素生成jQuery新對象;get和[]返回的都是原生的DOM對象,原理一致。get和[]差別是get是通過jQuery對象的方法獲取,[]是依據jQuery是一個數組對象獲取。
27.context的概念。
context就是限定查找的范圍,context必須是一個DOM元素。context底層還是用了.find()方法來實現的。
28.delegate()和.live()方法的差別。
delegate方法指定了托付對象,live方法托付給了jQuery的context,1.9版本號以后用on方法取代了。
29.attr()和.prop()方法的差別。
.attr()方法是操作屬性節點。.prop()方法是操作獲取到的相應js對象的屬性。在遇到要獲取或設置checked、selected、readonly和disabled等屬性時,用prop方法顯然更好。.prop()方法更高效,由于.attr()方法要訪問DOM。
30.jQuery中的load方法一般怎么用的?
load方法一般在加載遠程HTML代碼并插入到DOM中的時候用,通經常使用來從Webserver上獲取靜態的數據文件。
假設要傳遞參數的話,能夠使用$.get()或$.post()方法。
轉載于:https://www.cnblogs.com/brucemengbm/p/6898535.html
總結
以上是生活随笔為你收集整理的jQuery必知要点(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ROS探索总结(十二)——坐标系统
- 下一篇: 中国第二代身份证验证js代码