Time of Update: 2017-01-19
複製代碼 代碼如下:function getElementsByTagName(node, tagName) { var elements = [], i = 0, anyTag = tagName === "*", next = node.firstChild; while ((node = next)) { if (anyTag ? node.nodeType === 1 : node.nodeName === tagName) elements[i++] = node; next =
Time of Update: 2017-01-19
一、什麼是閉包? “官方”的解釋是:所謂“閉包”,指的是一個擁有許多變數和綁定了這些變數的環境的運算式(通常是一個函數),因而這些變數也是該運算式的一部分。 相信很少有人能直接看懂這句話,因為他描述的太學術。我想用如何在Javascript中建立一個閉包來告訴你什麼是閉包,因為跳過閉包的建立過程直接理解閉包的定義是非常困難的。看下面這段代碼: 複製代碼 代碼如下: function a(){ var i=0; function b(){ alert(++i); } return b;
Time of Update: 2017-01-19
複製代碼 代碼如下: //靈感來自 //http://www.cnblogs.com/jkisjk/archive/2011/01/28/array_quickly_sortby.html var hasDuplicate = false; var sortBy = function(nodes){ var result = [], array = [], n = nodes.length, i = n, node; while(node = nodes[--n]){ (array[n] =
Time of Update: 2017-01-19
在IE中我們可以利用sourceIndex,標準瀏覽器我們可以用compareDocumentPosition,但對於舊一點的標準瀏覽器呢?XML呢?因此我們就需要根據一個節點的屬性確定它與另一個節點的關係了。
Time of Update: 2017-01-19
全域變數是Window對象屬性的一部分,例子: 複製代碼 代碼如下: var test = 'test'; alert(window.test); 瀏覽器渲染和操作HTML的大致順序: HTML解析完畢 外部指令碼和樣式表載入完畢 指令碼在文檔內解析並執行 HTML DOM完全構造起來 圖片和外部內容載入 網頁完成載入 所有的主流瀏覽器都實現了innerHTML 屬性,但是因為沒有統一標準,所以或多或少會有一些怪異的bug。
Time of Update: 2017-01-19
1.避免使用eval或者Function建構函式 2.避免使用with 3.不要在效能要求關鍵的函數中使用try-catch-finally 4.避免使用全域變數 5.避免在效能要求關鍵的函數中使用for-in 6.使用字串累加計算風格 7.原操作會比函數調用快 8.設定setTimeout() 和 setInterval() 時傳遞函數名而不是字串 9.避免在對象中使用不需要的DOM引用 10.最清晰的目標速度,最小化範圍鏈 11.試著在指令碼中少使用注釋,避免使用長變數名
Time of Update: 2017-01-19
先看看效果: 複製代碼 代碼如下: <script type="text/javascript" src="http://users4.Jabry.com/pengju/src/pj-2.1.1.mini.js"></script> <script type="text/javascript" src="http://users4.Jabry.com/pengju/src/Calendar.js"></script> <input name=
Time of Update: 2017-01-19
何謂沒有被釋放資源的棧區和預執行的過程,用一個最常見的樣本來解釋: 比方現在我們有一個ul,下面有很多個li,需要遍曆他們為他們綁定單擊事件,並在點擊後將當前下標傳遞給另外一個function來進行額外的處理: 複製代碼 代碼如下: for(var i=0; i<agroup.length; i++) { agroup[i].onclick = function() { handler(i); } }
Time of Update: 2017-01-19
1.嘮叨 javascript語言是一門優秀的指令碼語言.其中包含指令碼語言的靈活性外還擁有許多進階語言的特性.例如充許構建和執行個體化一個對象,記憶體回收機制(GC:Garbage Collecation).通常我們使用new建立對象,GC負責回收對象佔用記憶體地區.因此瞭解GC,可以加深對javascript記憶體回收機制的理解。 2.用局部變數和全域變數解釋GC
Time of Update: 2017-01-19
效果示範代碼: 雲棲社區 www.jb51.net 雲棲社區 www.jb51.net 雲棲社區 www.jb51.net 雲棲社區 www.jb51.net [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]核心代碼:複製代碼 代碼如下:function showtable(){ var color1 = "rgb(234,240,255)"; var color2 = "rgb(255,255,255)"; var bgColor =
Time of Update: 2017-01-19
在寫程式過程中,經常會遇到去除數組中重複元素的需求。要實現這個功能其實並不難。 我們可以用一個兩重迴圈來實現,對於小的數組,這樣做當然並無不妥。 但如果我們的數組比較大,裡面的元素有上萬個。那麼用兩重迴圈,效率是極為低下。 下面我們就用js的特性,編寫一個高效去除數組重複元素的方法。 複製代碼 代碼如下: <script> function unique(data){ data = data || []; var a = {}; for (var i=0;
Time of Update: 2017-01-19
方法一 複製代碼 代碼如下: function clone(obj){ var o; switch(typeof obj){ case 'undefined': break; case 'string' : o = obj + '';break; case 'number' : o = obj - 0;break; case 'boolean' : o = obj;break; case 'object' : if(obj === null){ o = null; }else{ if(obj
Time of Update: 2017-01-19
一、方法體內返回對象執行個體自身(this) 複製代碼 代碼如下: function ClassA(){ this.prop1 = null; this.prop2 = null; this.prop3 = null; } ClassA.prototype = { method1 : function(p1){ this.prop1 = p1; return this; }, method2 : function(p2){ this.prop2 = p2; return this; },
Time of Update: 2017-01-19
複製代碼 代碼如下: <script> document.getElementById("trone").innerHTML = "<td>haha</td>"; </script> <tr id="trone"> </tr> 在IE中,有時候會出現"未知的執行階段錯誤(unknown runtime error)",而在firefox裡不會。
Time of Update: 2017-01-19
代碼: 複製代碼 代碼如下:<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>無標題頁</title> <script language="javascript" type="text/javascript"> function AddFavorite(sURL, sTitle) { try {
Time of Update: 2017-01-19
在JavaScript沒有類的定義,建立對象時沒有固定的模板,可以動態建立新的屬性和方法,在動態建立新屬性的時候,我們能做的就是為這個屬性建立新的值,下面一個例子就是建立一個對象並增加x,y兩個屬性。 複製代碼 代碼如下: var Programmer = new Object(); Programmer.name = "Young"; Programmer.age = 25; alert(Programmer.name + " : " + Programmer.age);
Time of Update: 2017-01-19
昨天用jQuery外掛程式aeImageResize,發現它更有優勢:每張圖片載入完後,會馬上進行等比縮放。 這歸於圖片對象Image的載入事件onload的功勞。 查看外掛程式的源碼,發現它也依賴圖片對象的complete屬性和onload事件,並且特別把IE6區分對待,到底IE6在圖片載入對象上,與其它瀏覽器有什麼不同呢? 看下文: 通過js操縱DOM很多情況下都是為了實現和當前頁html元素的非同步載入,我談談對Image對象的一些認識。 看個例子: 複製代碼 代碼如下:
Time of Update: 2017-01-19
函數如下: 複製代碼 代碼如下: foreach = function (obj, insp){ if(obj== null && obj.constructor != Array){ return []; } //obj是要處理的數組,obj==null 表示對象尚未存在;obj.constructor != Array 表示對象obj的屬性的建構函式不是數組; //constructor屬性始終指向建立當前對象的建構函式。兩個條件均滿足,則返回空數組[];
Time of Update: 2017-01-19
測試代碼: [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]
Time of Update: 2017-01-19
event對象只在事件發生的過程中才有效。 event的某些屬性只對特定的事件有意義。比如,fromElement 和 toElement 屬性只對 onmouseover 和 onmouseout 事件有意義。 例子 下面的例子檢查滑鼠是否在連結上單擊,並且,如果shift鍵被按下,就取消連結的跳轉。 <HTML> <HEAD><TITLE>Cancels Links</TITLE> <SCRIPT