-
除此之外,如果頁(yè)面有多個(gè)ID相同,也只會(huì)返回文檔中第一次出現(xiàn)的元素。IE8之前在針對(duì)表單的處理時(shí)候,表單的name與id重名,并且name在id之前,則會(huì)返回表單元素: <input name="aaron" value="測(cè)試"> <div id="aaron">重名</div>查看全部
-
這就是一個(gè)標(biāo)準(zhǔn)的立即執(zhí)行的匿名函數(shù)的標(biāo)準(zhǔn)寫(xiě)法 (function(a,b){ b(a) }('a',function(s){ console.log(s) }) ) js的語(yǔ)法分析器規(guī)則是:當(dāng)“()”作為一個(gè)運(yùn)算符時(shí)(權(quán)威指南里有詳細(xì)的說(shuō)明),里面填的都解釋為表達(dá)式,既然是表達(dá)式就有結(jié)果,這個(gè)結(jié)果就是一個(gè)無(wú)名函數(shù)的指針(或者說(shuō)引用),這個(gè)指針在內(nèi)存的函數(shù)棧里,然后再用“()”運(yùn)行這個(gè)無(wú)名函數(shù)。跟先定義一個(gè)函數(shù),然后用()調(diào)用它是一個(gè)道理。查看全部
-
1:jQuery.data(element,[key],[value]),每一個(gè)element都會(huì)有自己的一個(gè){key:value}對(duì)象保存著數(shù)據(jù),所以新建的對(duì)象就算有key相同它也不會(huì)覆蓋原來(lái)存在的對(duì)象key所對(duì)應(yīng)的value,因?yàn)樾聦?duì)象保存是是在另一個(gè){key:value}對(duì)象中 2:$("div").data("a","aaaa") 它是把數(shù)據(jù)綁定每一個(gè)匹配div節(jié)點(diǎn)的元素上 源碼可以看出來(lái),說(shuō)到底,數(shù)據(jù)緩存就是在目標(biāo)對(duì)象與緩存體間建立一對(duì)一的關(guān)系,整個(gè)Data類其實(shí)都是圍繞著 thia.cache 內(nèi)部的數(shù)據(jù)做增刪改查的操作。查看全部
-
JS的內(nèi)存泄露,無(wú)怪乎就是從DOM中remove了元素,但是依然有變量或者對(duì)象引用了該DOM對(duì)象。然后內(nèi)存中無(wú)法刪除。使得瀏覽器的內(nèi)存占用居高不下。這種內(nèi)存占用,隨著瀏覽器的刷新,會(huì)自動(dòng)釋放。 而另外一種情況,就是循環(huán)引用,一個(gè)DOM對(duì)象和JS對(duì)象之間互相引用,這樣造成的情況更嚴(yán)重一些,即使刷新,內(nèi)存也不會(huì)減少。這就是嚴(yán)格意義上說(shuō)的內(nèi)存泄露了。 所以在平時(shí)實(shí)際應(yīng)用中, 我們經(jīng)常需要給元素緩存一些數(shù)據(jù),并且這些數(shù)據(jù)往往和DOM元素緊密相關(guān)。由于DOM元素(節(jié)點(diǎn))也是對(duì)象, 所以我們可以直接擴(kuò)展DOM元素的屬性,但是如果給DOM元素添加自定義的屬性和過(guò)多的數(shù)據(jù)可能會(huì)引起內(nèi)存泄漏,所以應(yīng)該要盡量避免這樣做。 因此更好的解決方法是使用一種低耦合的方式讓DOM和緩存數(shù)據(jù)能夠聯(lián)系起來(lái)。 所以我們必須有一種機(jī)制,避免引用數(shù)據(jù)直接依附在DOM對(duì)象上,這樣盡量避免內(nèi)存泄漏的產(chǎn)生。jQuery的緩存系統(tǒng)就很好的解決了這一問(wèn)題。查看全部
-
在構(gòu)造函數(shù)中的return會(huì)返回什么呢? 1.可以返回一個(gè)對(duì)象,那么得到的是返回的對(duì)象; 2.其他的都是返回this所指代的對(duì)象;查看全部
-
原來(lái)原型的作用是實(shí)例間的公用...查看全部
-
先順序執(zhí)行,最后執(zhí)行回調(diào)查看全部
-
test查看全部
-
ready與load那一個(gè)先執(zhí)行,那一個(gè)后執(zhí)行?答案是ready先執(zhí)行,load后執(zhí)行。查看全部
-
這里要區(qū)分2個(gè)概念一個(gè)是匿名函數(shù),一個(gè)是自執(zhí)行。顧名思義,匿名函數(shù),就是沒(méi)有函數(shù)名的函數(shù),也就是不存在外部引用。查看全部
-
Write less,Do more !查看全部
-
設(shè)計(jì)該模式背后的主要?jiǎng)恿κ谴龠M(jìn)形成松散耦合。在這種模式中,并不是一個(gè)對(duì)象調(diào)用另一個(gè)對(duì)象的方法,而是一個(gè)對(duì)象訂閱另一個(gè)對(duì)象的特定活動(dòng)并在狀態(tài)改變后獲得通知。 總的來(lái)說(shuō),觀察者模式所做的工作就是在解耦,讓耦合的雙方都依賴于抽象,而不是依賴于具體。從而使得各自的變化都不會(huì)影響到另一邊的變化。查看全部
-
觀察者的使用場(chǎng)合 觀察者的使用場(chǎng)合就是:當(dāng)一個(gè)對(duì)象的改變需要同時(shí)改變其它對(duì)象,并且它不知道具體有多少對(duì)象需要改變的時(shí)候,就應(yīng)該考慮使用觀察者模式。 組件開(kāi)發(fā)為了保證組件可以在不同的項(xiàng)目中都適用,其必須是對(duì)其常用功能抽象出來(lái)加以實(shí)現(xiàn),絕不會(huì)包含具體的業(yè)務(wù)邏輯而某一特定的項(xiàng)目使用者在其業(yè)務(wù)場(chǎng)景中使用組件時(shí)不可避免的要加入不同場(chǎng)景的業(yè)務(wù)邏輯。 疑問(wèn):有的時(shí)候,總是分不清楚哪些是功能哪些是業(yè)務(wù)邏輯查看全部
-
The Write Less,Do More(寫(xiě)更少,做更多),無(wú)疑就是jQuery的核心理念,簡(jiǎn)潔的API、優(yōu)雅的鏈?zhǔn)?、?qiáng)大的查詢與便捷的操作。查看全部
-
一般選擇器的匹配模式(包括jq1.2之前),都是一個(gè)順序的思維方式,在需要遞進(jìn)式匹配時(shí),比如$(‘div span’) 這樣的匹配時(shí),執(zhí)行的操作都是先匹配頁(yè)面中div然后再匹配它的節(jié)點(diǎn)下的span標(biāo)簽,之后返回結(jié)果。 Sizzle則采取了相反Right To Left的實(shí)現(xiàn)方式,先搜尋頁(yè)面中所有的span標(biāo)簽,再在其后的操作中才去判斷它的父節(jié)點(diǎn)(包括父節(jié)點(diǎn)以上)是否為div,是則壓入數(shù)組,否則pass,進(jìn)入下一判斷,最后返回該操作序列。查看全部
舉報(bào)
0/150
提交
取消