-
jQuery一共13個(gè)模塊,從2.1版開(kāi)始jQuery支持通過(guò)AMD模塊劃分,jQuery在最開(kāi)始發(fā)布的1.0版本是很簡(jiǎn)單的,只有CSS選擇符、事件處理和AJAX交互3大塊。其發(fā)展過(guò)程中,有幾次重要的變革: 1.2.3 版發(fā)布,引入數(shù)據(jù)緩存,解決循環(huán)引用與大數(shù)據(jù)保存的問(wèn)題 1.3 版發(fā)布,它使用了全新的選擇符引擎Sizzle,在各個(gè)瀏覽器下全面超越其他同類型JavaScript框架的查詢速度,程序庫(kù)的性能也因此有了極大提升 1.5 版發(fā)布,新增延緩對(duì)像(Deferred Objects),并用deferred重寫了Ajax模塊 1.7 版發(fā)布,抽象出回調(diào)對(duì)象,提供了強(qiáng)大的的方式來(lái)管理回調(diào)函數(shù)列表。 每一次大的改進(jìn)都引入了一些新的機(jī)制、新的特性,通過(guò)這些新的機(jī)制就造就了如今jQuery庫(kù),一共13個(gè)模塊,模塊不是單一的,比如jQuery動(dòng)畫,都會(huì)依賴異步隊(duì)列、動(dòng)畫隊(duì)列、回調(diào)隊(duì)列與數(shù)據(jù)緩存模塊等。查看全部
-
js很難學(xué),就是因?yàn)檫@些查看全部
-
三目運(yùn)算符 $( "#t" ).text( n + (n === 1 ? " is" : " are") + " checked!" ); eg: a>b?c:d; 判斷a是否大于b,是則返回c,否則返回d查看全部
-
1.jquery實(shí)現(xiàn)了9種方法的重載,9種用法整體來(lái)說(shuō)可以分三大塊:選擇器、dom的處理、dom加載。 2.jQuery就是為了獲取DOM、操作DOM而存在的!所以為了更方便這些操作,讓節(jié)點(diǎn)與實(shí)例對(duì)象通過(guò)一個(gè)橋梁給關(guān)聯(lián)起來(lái),jQuery內(nèi)部就采用了一種叫“類數(shù)組對(duì)象”的方式作為存儲(chǔ)結(jié)構(gòu),所以我們即可以像對(duì)象一樣處理jQuery操作,也能像數(shù)組一樣可以使用push、pop、shift、unshift、sort、each、map等類數(shù)組的方法操作jQuery對(duì)象了。查看全部
-
最新jQuery 2.1.1 版本的結(jié)構(gòu)查看全部
-
var $ = function(a){ return new $.prototype.init(a); }//實(shí)例$函數(shù)的時(shí)候,返回的是init的實(shí)例對(duì)象,在后面可以看到,init的實(shí)例對(duì)象是通過(guò)init.prototype生成的,而我們把init.prototype = $.prototype了,所以返回的對(duì)象就是以$.prototype生成的! $.sayHello = function(args){ if(args) console.log("Hello,"+"I am "+args); else console.log("Hello"); }//靜態(tài)方法很容易實(shí)現(xiàn) $.prototype = { init:function(a){ this.a = a; //實(shí)例初始化a }, constructor:$, sayHello:function(){ return $.sayHello(this.a); //用實(shí)例的a作為參數(shù)調(diào)用靜態(tài)方法 }, a:null }//這兒就是對(duì)象的原型了,盡管返回的是init的實(shí)例對(duì)象,也是通過(guò)這個(gè)原型產(chǎn)生的 $.prototype.init.prototype = $.prototype; $.sayHello();//Hello $('Jose').sayHello();//Hello,I am Jose查看全部
-
這里有一個(gè)設(shè)計(jì)的重點(diǎn),通過(guò)調(diào)用的上下文,我們來(lái)確定這個(gè)方法是作為靜態(tài)還是實(shí)例處理,在javascript的世界中一共有四種上下文調(diào)用方式:方法調(diào)用模式、函數(shù)調(diào)用模式、構(gòu)造器調(diào)用模式、apply調(diào)用模式: jQuery.extend調(diào)用的時(shí)候上下文指向的是jQuery構(gòu)造器 jQuery.fn.extend調(diào)用的時(shí)候上下文指向的是jQuery構(gòu)造器的實(shí)例對(duì)象了查看全部
-
首先,要解決無(wú)new,拿么只能在函數(shù)里邊new,但是new自己容易出現(xiàn)無(wú)限遞歸自己。那么就要想辦法,不能new 自己,那能不能new別人,然后讓這個(gè)人擁有和自己一樣的屬性和方法,只是換了個(gè)名字而已,當(dāng)然是可以的。如是就有了new ajQuery.fn.init( selector ). 在init()方法里返回this,然后將init.prototype=ajQuery.prototype,這樣,init()返回的this 就擁有了ajQuery所有的屬性和方法。繞了一個(gè)圈,目的就為了不new自己也能得到和自己擁有相同屬性和方法的實(shí)例對(duì)象。查看全部
-
理解:1.$(),jQuery()是執(zhí)行一個(gè)函數(shù),$和jQuery是函數(shù)名稱,這個(gè)函數(shù)返回的是一個(gè)對(duì)象,所以里面是一個(gè)new表達(dá)式,但是名字不能是自己,否則無(wú)限循環(huán)。2.既然不是自己,其實(shí)可以理解為jQuery()返回的不是jQuery對(duì)象,而是jQuery.fn.init(一個(gè)名字而已)對(duì)象。3.但是為了統(tǒng)一和方法/屬性的共用(理解原型鏈),jQUuery這樣處理,jQuery.fn.init.prototype = jQuery.prototype. 后面還有4.............不能超過(guò)3000字查看全部
-
打印$$().say() <div id="aaron"></div> <script type="text/javascript"> var $$ = ajQuery = (function(selector) { return new ajQuery.fn.init(selector); }) // 這里可以這樣子理解$$ 是一個(gè)類(方法類。) ajQuery.fn = ajQuery.prototype = { name: 'aaron', // 這是ajQuery($$)的靜態(tài)方法init init: function(selector) { this.selector = selector; return this; }, constructor: ajQuery } // $$類的實(shí)例方法fn指向類$$的原型 // 同時(shí)給原型上定入了init方法, // ajQuery.fn.init.prototype = ajQuery.fn // 由于我們執(zhí)行$$()返回的是一個(gè)ajQuery.fn.init的對(duì)象(假定為a) // 所以為了能夠a用能用$$的原型上的方法。 // 我們就把a(bǔ)jQuery.fn.init類的原型()指向ajQuery.prototype // 這樣我們返回的a的類上的原型跟ajquery的原型是同一個(gè)了。 // 由于上面的賦值是不可逆的,所以這個(gè)say方法只存在ajQuery.fn // 上,而不存在ajQuery的原型上。所以你不能直接使用$$.say() ajQuery.fn.say = function() { $("#aaron").html(this.name) } $$.say() $$().say()查看全部
-
面試的過(guò)程中,經(jīng)常會(huì)被問(wèn)到一個(gè)問(wèn)題:ready與load那一個(gè)先執(zhí)行,那一個(gè)后執(zhí)行? 答案:ready先執(zhí)行,load后執(zhí)行。查看全部
-
jQuery實(shí)現(xiàn)了“類數(shù)組對(duì)象”和“靜態(tài)與實(shí)例的共存”查看全部
-
var n = $( "input:checked" ).length; input元素中所有checked=checked的對(duì)象,加上lengh就是對(duì)象個(gè)個(gè)數(shù)查看全部
-
n===1? "is":"are" 當(dāng)n===1時(shí),用is 否則用are查看全部
-
DOM文檔加載的步驟: 要想理解為什么ready先執(zhí)行,load后執(zhí)行就要先了解下DOM文檔加載的步驟: (1) 解析HTML結(jié)構(gòu)。 (2) 加載外部腳本和樣式表文件。 (3) 解析并執(zhí)行腳本代碼。 (4) 構(gòu)造HTML DOM模型。//ready (5) 加載圖片等外部文件。 (6) 頁(yè)面加載完畢。//load 從上面的描述中大家應(yīng)該已經(jīng)理解了吧,ready在第(4)步完成之后就執(zhí)行了,但是load要在第(6)步完成之后才執(zhí)行。查看全部
舉報(bào)
0/150
提交
取消