Time of Update: 2017-02-27
在實際工作中,記住瀏覽器中對象的屬性、方法幾乎是件不可能完成的任務,保持一份資料或網址是個好辦法。但是查閱資料也是要花費不少時間,如果能有個指令碼將對象的結構列印出來,將會加速開發進程。下面是我編寫的查看對象結構例子,請下載附件擷取可執行代碼://Animal是一個對象 Animal = { createNew: function( bundle ) { var animal = {}; var protect =
Time of Update: 2017-02-27
javascript架構多呀,令人眼花繚亂。javascript既然是解釋執行,那麼天然的就具備了開源的基因。為了少些限制,傾向於挑選基於MIT/BSD/APL協議的架構。以下排名不分先後,都是搜尋結果:1)Mojito是一個JavaScript
Time of Update: 2017-02-27
最近利用一周時間閱讀了《精通Regex(第3版)》前6章,希望能夠精通Regex,並且能夠撰寫《javascript深度理解Regex》這樣的文章。一周時間太短,我自認為僅僅是達到了“不再畏懼”、“更有信心”的程度,因而本文的目標只能是協助讀者“掌握”Regex。我想Regex之所以難,主要體現在以下幾個方面:1)Regex的符號晦澀難懂2)不支援排版(至少javascript目前還不支援)3)不能設定斷點,不能跟蹤調試4)
Time of Update: 2017-02-27
我理解javascript中call和apply的區別僅在於文法不同。下例中分別調用call和apply對myObj進行修改,文法不同,但使用效果是一樣的:var myObj = { "a":1, "b":2, "c":3 } var myFunc = function(a,b,c){ this.a=a; this.b=b;
Time of Update: 2017-02-27
javascript數組分配記憶體是非線性,這樣會犧牲效能,好處就是更加靈活,例如:數組元素不要求同樣的類型,給數組添加元素不會越界。數組下標從0開始,length取值為最大下標加1。數組下標不必連續,你也可以改變length的值,數組元素記憶體是動態分配的,僅僅是設定更大的length不會佔用更多的空間,而將length的值改小,則大於等於該下標的元素會被清除掉,記憶體得以釋放。數組和對象的主要差別有兩點,一是數組對象屬性名稱不能自訂,二是數組對象會有一些處理數組的方法,在對象中沒有。使用pu
Time of Update: 2017-02-27
我在<<javascript遍曆DOM結構和對象結構>>一文中提供了一個遍曆對象結構的函數,利用這個函數,展現IE10中window對象的結構(還真是不少啊~調試代碼也在呢~)如下:調試資訊: [Object] window |--[function] addEventListener = function addEventListener() { [native code] } |--[function] alert = function
Time of Update: 2017-02-27
現在基本上我很少在對象裡面寫事情觸發行為了,因為感覺那樣做相同的對象代碼利用率太低,容易導致代碼冗餘.從學習W3C標準以來,對於代碼我好像養成了一種怪癖,能統一複用的,就不會多寫一點東西,這樣前台頁面代碼看起來會清爽很多,而效率也會成直線上升.下面來講一下最近一個項目裡面比較有代表性的東西.(執行個體可以查看這裡http://www.pplive.com/zh-cn/view.html)程式碼<script type="text/javascript"><!
Time of Update: 2017-02-27
一、基本的JavaScript 開發環境JavaScript Reference與JavaScript API:JavaScript Reference是用於建立包含JavaScript runtime的Library或 DLL,然後編譯成小的 "shell" 程式,串連Library後產生互動JavaScript解譯器,也可以用來解釋.js 檔案。該程式不依賴Navigator代碼。產生的"shell"
Time of Update: 2017-02-27
javascript讀寫刪除cookie的操作.function GetCookieVal(offset)//獲得Cookie解碼後的值{var endstr = document.cookie.indexOf (";", offset);if (endstr == -1)endstr = document.cookie.length;return unescape(document.cookie.substring(offset, endstr));}-----------
Time of Update: 2017-02-27
1、javascript ,設定一個變數,只允許提交一次。<script language="javascript"> var checkSubmitFlg = false; function checkSubmit(){ if (checkSubmitFlg == true) { return false; } checkSubmitFlg = true; return true; } document.ondblclick =
Time of Update: 2017-02-27
非常不錯的提示輸入內容,動態提示,給人親切感<textarea id="content" name="content" cols="70" rows="5" style="width:450px;height:50px" class="text" onchange="CHECKCONTENT()"
Time of Update: 2017-02-27
這兩天做基於 Flash9(ActionScript 3.0)的 JavaScript PHPRPC 3.0 用戶端時遇到了一些 JavaScript 與 ActionScript 3.0 互動的一些問題,這些問題在網上基本上都沒有找到答案,最後通過不斷的嘗試才得以解決,因此在這裡總結出來,希望能給遇到同樣問題的同志們一些協助。JavaScript 跟 ActionScript 3.0 互動也是通過 flash.external.ExternalInterface 這個類,不過與跟 Flash
Time of Update: 2017-02-27
1、什麼是閉包、以及閉包所涉及的範圍鏈這裡就不說了。2、JavaScript記憶體回收機制 JavaScript不需要手動地釋放記憶體,它使用一種自動記憶體回收機制(garbage collection)。當一個對象無用的時候,即程式中無變數引用這個對象時,就會從記憶體中釋放掉這個變數。var s = [ 1, 2 ,3];var s = null;//這樣原始的數組[1 ,2 ,3]就會被釋放掉了。3、循環參考三個對象 A 、B 、CAàBàC
Time of Update: 2017-02-27
最近在工作當中遇到一個問題 有個頁面需要添加一個瀏覽歷程記錄功能,具體來說就是要記錄下使用者在此網站的點擊曆史 並把它們降序排列出來(只顯示前6個瀏覽曆史而且不能重複)。由於以前對javascript瞭解不夠深入,一時間手足無措。後來經過兩位高手同事的指點(對這兩位同事的敬仰猶如滔滔江水連綿不絕...),恍然大悟,豁然開朗成功地完成了此功能的添加。首先來介紹一下javascript中關於此功能的一些對象和方法:1.
Time of Update: 2017-02-27
有一個已經排序的數組(升序),數組中可能有正數、負數或0,求數組中元素的絕對值最小的數,要求,不能用順序比較的方法(複雜度需要小於O(n)),可以使用任何語言實現例如,數組{-20,-13,-4, 6, 77,200} ,絕對值最小的是-4。問題分解:第一步:二分法尋找改變符號的位置(0視為正數)第二步:比較位置左右數位絕對值大小,取較小的那一個<script language="javascript"> var getBound =
Time of Update: 2017-02-27
定義兩個函數,pt輸出運算式及其計算結果,put輸出字串:<span id="dbg"> <b>調試資訊:</b> </span> <script language="javascript"> function pt(myExp){ document.getElementById("dbg").innerHTML+
Time of Update: 2017-02-27
javascript變數範圍只有兩種情況:全域範圍、函數範圍沒有代碼塊範圍,因而要養成一處聲明全部變數的編程習慣(檔案頭部、函數頭部)。function test(){ var abc="123"; efg="456"; put("in test abc="+abc); put("in test efg="+efg); }
Time of Update: 2017-02-27
1) 當一個函數被儲存為對象的一個屬性時,我們稱它為一個方法。當一個方法被調用時,this被綁定到該對象。2) 當一個函數並非一個對象的屬性,那麼當它被調用時,this被綁定到全域對象。這一缺陷導致內建函式的this不一定是調用它的函數的this,解決辦法是在外部函數定義一個新的變數指向this(例如var that = this; )。3) 在一個函數前面帶上new,將建立一個新對象,this綁定到新對象。4)
Time of Update: 2017-02-27
理解javascript函數的關鍵就是拋棄主流物件導向語言中“類”的觀念。主流的物件導向語言,例如C++,先寫好“類”的定義。當需要對象時,用new關鍵字去划出一片記憶體來,賦上初值,就有了一個對象(“類”的“執行個體”)。混淆的來源是javascript語言模仿了物件導向的文法,看到Object,new之類的關鍵字,很難不讓人去聯想那些傳統的物件導向的經典概念。我們可以優雅的模仿“類&r
Time of Update: 2017-02-27
傳說某間寺院有三根柱子,在創世之初,第一根柱子串有64個金盤,盤的尺寸由下到上一個比一個小。寺院裡的僧侶依照一個古老的預言,每天移動一個盤;大盤不能疊在小盤上面,預言說盤子全部移動到到第三根柱子時,世界就會滅亡。最少移動步數是隨著盤子的個數呈指數增長(2^n-1)的。對指數增長有概念的同學應該能夠看出移動64個盤子所需的步數是個天文數字,即使僧侶們每秒可完成一個盤子的移動,也需要5846億年才能完成,整個宇宙現在也不過137億年。這個世界滅亡傳說的本意大概是在祝福世界不要滅亡吧。在《猩球崛起》故