1、DOM對象與jquery對象相互轉換
DOM對象可以轉換為jquery對象:$(DOM對象)
jquery對象可以轉換為DOM對象:jquery對象提供get(index)方法
注:jquery對象與DOM對象不能相互調用
2、jquery的選擇器與css的選擇器之間的關系?
1.jquery的選擇器其實是源于CSS的選擇器
2.jquery的作者本人非常喜歡css選擇器的用法
3.css中的選擇器大量在jquery中應用
4.jquery擴展了css中沒有的選擇器
3、內容過濾選擇器
:contains(text)--當前元素及后代元素,后代包含,他就包含
:parent--獲取包含文本內容或子元素的元素
:empty--獲取沒有文本內容或子元素的空元素(適合清空)
:has(selector)--獲取含有匹配選擇器的元素的父元素
eg:div:.one —— 獲取包含class為one的div的父級div
4、富客戶端與瘦客戶端
富客戶端:Rich Client
富因特網應用程序(Rich Internet Applications,RIA)利用具有很強交互性的富客戶端技術來為用戶提供一個更高和更全方位的網絡體驗。
瘦客戶端:瘦客戶端(Thin Client)指的是在客戶端-服務器網絡體系中的一個基本無需應用程序的計算機終端。 它通過一些協議和服務器通信,進而接入局域網。作為應用程序平臺的Internet的到來為企業應用程序提供了一個全新的領域:一個基于Internet/intranet的應用程序運用一個只包含一個瀏覽器的瘦客戶端。這個瀏覽器負責解釋、顯示和處理應用程序的圖形用戶界面(GUI)和它的數據。這樣的一個應用程序只需要被安裝在一個Web服務器上,用戶可以自動接收升級。一個解決方案只需要部署一次,甚至對成千的用戶也是如此,這種想法的確很吸引人,尤其是Internet技術幫我們緩解了一些傳統的應用程序的障礙,比如防火墻和對多平臺的支持。
5、阻止事件默認行為
(eg:a標簽的鏈接跳轉,form表單元素按鈕的提交,reset重置,)
return false 可以取消默認的行為并阻止事件冒泡
event.prenventDefault() 只取消默認行為
[return false 不僅會阻止默認行為,還會阻止后邊的代碼執行,所以如果是僅僅阻止默認行為,最好放在最后面]
eg:
1、通過返回false來取消默認的行為并阻止事件起泡。
jQuery 代碼:
$("form").bind(
"submit",
function() {
return false;
}
);
2、通過使用 preventDefault() 方法只取消默認的行為。
jQuery 代碼:
$("form").bind(
"submit",
function(event){
event.preventDefault();
}
);
3、通過使用 stopPropagation() 方法只阻止一個事件起泡。
jQuery 代碼:
$("form").bind(
"submit",
function(event){
event.stopPropagation();
}
);
6、復制元素
JQUERY - clone(Boolean) - 是否復制事件 (獨立的)
原生DOM - cloneNode(Boolean) - 是否復制后代節點
(不是獨立的,會跟著原來的變)
cloneNode(Boolean)方法
在默認情況(false)下,只復制自身節點(不包含后代節點)
當參數傳遞為true時,復制后代節點
clone默認false,只復制自身節點及后代節點,但是不復制事件,
true,復制事件
7、頁面加載
ready() - 類似于window.onload(只有window為頁面加載)
寫法一:$(document).ready(function(){})
寫法二:$().ready(function(){})
寫法三:簡寫 $(function(){})
開發使用簡寫形式(不要忘記所有寫法),面試可能會考全寫
與匿名自調函數的寫法類似:匿名自調:(function(){})()
8、JQUERY中的ready()與window.onload事件的區別?【必考】
ready():1、ready具有簡寫寫法的(寫法固定)
2、 一個HTML頁面允許編寫多個ready
3、(執行速度快)只需等待DOM樹結構加載完畢
(ready更快)
onload事件:1、沒有任何簡寫形式
2、一個HTML頁面只允許編寫一個onload
3、(速度慢)必須等待HTML所有內容加載完畢
(比如圖片、音頻、視頻等不屬于DOM)
9、 bind()、live()、delegate()、one()和on()的區別?
答:bind()、live()和on()都是事件綁定
bind()和live()方法的底層邏輯,就是on()
live()在JQUERY的新版本中廢除
delegate()是live()新版本替換
one()綁定一個一次性事件【一次性:只能觸發一次】
注:使用新版本的jQuery,一般多用On,最重要的是Bind和on的用法。on根off是一對,live的反操作為die,delegate 的反操作,undelegate
10、JQUERY與其他JS庫的沖突
描述 - 在于"$"符號的使用權的沖突
解決(原則) - JQUERY主動放棄
解決方案【原則都是一樣的】
方案一 - JQUERY自此不再使用"$",改為jQuery
問題 - JQUERY的代碼變得復雜【最簡單但有問題】
方案二 - JQUERY對外不再使用"$",改為jQuery
利用JavaScript中的自調函數
(function($){//形參
// 這里封裝所有JQUERY代碼
})(jQuery);//實參
方案三 - JQUERY對外不再使用"$",改為jQuery
利用JQUERY中的ready機制
$(document).ready(function($){
// 這里封裝所有JQUERY代碼
});
方案四
jQuery.noConflict();//手冊中 核心--多庫共存,表示主動放棄
(function($){
// 這里封裝所有JQUERY代碼
})(jQuery);
方案五
jQuery.noConflict();
$(document).ready(function($){
// 這里封裝所有JQUERY代碼
});
推薦方案:方案五 (用的是jQuery的官方機制解決的)
11、console(控制臺)四個級別
log()-日志級別
info()-信息級別前面是個i
warn()-警告級別前面是!
error()-錯誤級別前面是×
12、append和prepend區別:
append() - 作為最后一個子元素插入到指定元素中
【插入在指定元素的后面】
【顯示出來是在后面,作為子元素出現,保留各自前面的li點】
prepend() - 作為第一個子元素插入到指定元素中
【插入在指定元素的前面】
【顯示出來是在前面,作為子元素出現,不保留原來li前面的點】
13、隱式迭代-不管過程(只關心輸入和輸出)
【即只關心遍歷誰,遍歷之后的結果是怎么樣的,比如原生JS中:for in,while(但不算完整的)】
顯式迭代-關心過程(關心遍歷誰,遍歷之后的結果,及遍歷過程,典型的是:for循環)
14、類數組對象與數組的區別
類數組對象: 類型是Object
結構類似于數組
數組:類型是Array
值的有序列表
15、JQUERY中get()、eq()和[]的區別?
JQUERY利用get()和[]可以將JQUERY對象轉換為DOM對象
get()方法是JQUERY提供的API
[]源于JQUERY對象是類數組對象
eq()返回JQUERY對象
16、$.each()與each()的區別
(1)調用方式不同
(2)接收的參數個數及作用不同
(3)$.each()與頁面無關,each()與頁面有關
$.each(obj,callback)-全局(JQUERY底層代碼)函數
$().each(callback)-(JQUERY)對象方法(也可以是直接寫each,前面的是工廠函數)
這些方法都是隱式迭代
【$().each()工廠函數返回的是jQuery對象,$.each()返回的jQuery底層的全局函數】【面試也可能會問】
例1:$("input").each(function(index, domEle){
console.log(domEle.value);
});
例2:$.each($("input"),function(index,domEle){
console.log(domEle);
});
例3:var arr = [1,2,3,4,5];
$.each(arr,function(index,domEle){
console.log(domEle);
});
17、Number類型(包括整型和浮點型)
(1)32位(整型)或64位(浮點型)【js中不分】
(2)二進制、八進制還是十六進制 - 最后得到的都是十進制的
【只有js是這樣嬸兒的~】
(3)正無窮和負無窮
面試問題:正無窮加負無窮是否等于0?答:不等于。
18、JQUERY UI的問題(面試有時會問)
JQUERY UI并不是一個JS庫
JQUERY UI并不是一個JQUERY插件
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。