Time of Update: 2017-01-13
/* MD5 Message-Digest Algorithm - JavaScript' MODIFICATION HISTORY:' 1.0 16-Feb-2001 - Phil Fresle (sales@frez.co.uk) - Initial Version (VB/ASP code)' 1.0 21-Feb-2001 - Enrico Mosanghini
Time of Update: 2017-01-13
在很多論壇中看到關於VBscript和JAVAscript到底應該使用哪個,哪個比較好的問題?今天我來談談我的看法:伺服器端:大家知道ASP支援這兩中指令碼語言,也就是在伺服器端用哪個都行,但大部分人在伺服器端用VBscript比較多,對於新手來說一般用VBscript就可以了。用戶端:現在流行的主要是微軟和網景這兩大瀏覽器,微軟的IE對VBscript和JAVAscript都支援,而網景的瀏覽器卻不支援VBscript,為了相容我們應該在用戶端使用JAVAscript指令碼語言,從另方面由於J
Time of Update: 2017-01-13
單例模式是一種常見的模式,如果希望系統中一個類只有一個執行個體,那麼單例模式是最好的解決方案。一. 單例模式的定義單例模式的定義:保證一個類僅有一個執行個體,並提供一個訪問它的全域訪問點。二. 單例模式的實現原理用一個變數來標誌當前是否已經為某個類建立過對象。如果是,則在下一次擷取該類的執行個體時,直接返回之前建立的對象。三. 單例模式的優點單例模式的優點有:記憶體中只有一個對象,節省記憶體空間;避免頻繁銷毀對象,提高效能;避免共用資源多重佔用;可以全域訪問。四.
Time of Update: 2017-01-13
一. 策略模式的定義策略模式的定義:定義了演算法家族,分別封裝起來,讓它們之間可以相互替換。策略模式的目的是想將演算法的使用與實現分離開來。二. 策略模式的實現究其本質,策略模式使用委託去解耦使用它們的演算法類。基於策略模式的程式至少由兩部分組成:第一部分是一組 策略類。策略類封裝了具體的演算法,並負責具體的計算過程。第二部分是 環境類 Context。Context接受客戶請求,並將請求委託給某一個策略類。例如:// 定義一組策略類var strategies = { &
Time of Update: 2017-01-13
一. 代理模式的定義代理模式的定義:為其他對象提供一種代理,以控制對著這個對象的訪問。在代理模式中,一個對象充當另一個對象的介面。這種模式看起來像是額外的開銷,但是出於效能因素的考慮卻是非常有用的。代理充當了本體對象的守護對象,並且試圖使本體對象做儘可能少的工作。二. 代理模式的適用情境代理模式的適用情境有:延遲一個大對象的執行個體化;訪問遠程對象;存取控制;… …三. 代理模式的實現在代理模式中,一個對象充當另一個對象的介面,使得本體對象做儘可能少的工作。/* ==
Time of Update: 2017-01-13
一. 中介者模式的定義中介者模式的定義:用一個中介對象來封裝一系列的對象互動。中介者使各對象不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。中介者模式的作用是接觸對象與對象之間的緊耦合關係。二. 中介者模式的實現在中介者模式中,獨立的對象(colleague)之間並不直接通訊,而是通過中介者對象。當其中一個colleague對象改變狀態以後,它將會通知該中介者對象,而中介者對象將會把該變化傳達到任意其他應該知道此變化的colleague對象。用代碼錶示如下:/* ===
Time of Update: 2017-01-13
一. 裝飾者模式的定義裝飾者模式的定義:動態地給一個對象添加額外的職責,而不會影響從這個類派生的其他對象。二. 裝飾者模式的實現裝飾者模式能夠在不改變對象自身的基礎上,在程式運行期間給對象動態添加職責。在JavaScript的實際實現中,可以將本體對象放到裝飾者對象中,這些對象以一條鏈的方式進行引用,形成一個彙總對象。本體對象和裝飾者對象都擁有相同的介面,當請求到達鏈中的裝飾者對象,這個裝飾者對象會執行自身,隨後將請求轉寄給本體對象。2.1 通過對象覆寫來實現裝飾者模式代碼如下:/* =====
Time of Update: 2017-01-13
一. 函數柯裡化的定義函數柯裡化,Function currying,又稱部分求值,指的是逐步傳參,逐步求解的過程。二. 函數柯裡化的實現一個Curry函數首先會接受一些參數,接受參數之後,該函數並不會立即求值,而是繼續返回另一個函數,剛才傳入的參數在函數形成的閉包中被儲存起來。待到函數被真正需要求值的時候,之前傳入的所有參數都會被一次性用於求值。如下:var add = (function() { var numArr =
Time of Update: 2017-01-13
一.
Time of Update: 2017-01-13
在JavaScript中,對對象進行拷貝的情境比較常見。但是簡單的複製語句只能對對象進行淺拷貝,即複製的是一份引用,而不是它所引用的對象。而更多的時候,我們希望對對象進行深拷貝,避免原始對象被無意修改。對象的深拷貝與淺拷貝的區別如下:淺拷貝:僅僅複製對象的引用,而不是對象本身;深拷貝:把複製的對象所引用的全部對象都複製一遍。一. 淺拷貝的實現淺拷貝的實現方法比較簡單,只要使用是簡單的複製語句即可。1.1 方法一:簡單的複製語句/* ================ 淺拷貝 ===========
Time of Update: 2017-01-13
一、函數建立過程在瞭解原型鏈之前我們先來看看一個函數在建立過程中做了哪些事情,舉一個空函數的例子:function A() {};當我們在代碼裡面聲明這麼一個空函數,js解析的本質是(膚淺理解有待深入):1、建立一個對象(有constructor屬性及[[Prototype]]屬性),根據ECMA,其中[[Prototype]]屬性不可見、不可枚舉2、建立一個函數(有name、prototype屬性),再通過prototype屬性 引用 剛才建立的對象3、建立變數A,同時把函數的 引用
Time of Update: 2017-01-13
下面的代碼使用了兩種方式刪除數組的元素,第一種定義一個單獨的函數,第二種為Array對象定義了一個removeByValue的方法 一、建立數組1.使用數組字面量(直接量)var empty=[];//空數組var misc=[1.1,true,”a”,[1,{x:1,y:2}]];//元素類型不同var count=[1,,2];//有3個元素,中間被省略的值為undefinedvar undefs=[,,];//有2個元素,但也會解析為3個,所以不要這樣做2
Time of Update: 2017-01-13
單例模式是一種常見的模式,如果 希望系統中一個類只有一個執行個體 ,那麼單例模式是最好的解決方案。一. 單例模式的定義單例模式的定義: 保證一個類僅有一個執行個體,並提供一個訪問它的全域訪問點。二. 單例模式的實現原理用一個變數來標誌當前是否已經為某個類建立過對象。如果是,則在下一次擷取該類的執行個體時,直接返回之前建立的對象。三. 單例模式的優點單例模式的優點有:記憶體中只有一個對象,節省記憶體空間;避免頻繁銷毀對象,提高效能;避免共用資源多重佔用;可以全域訪問。四.
Time of Update: 2017-01-13
在幾個月前,我就已經把這個功能實現了,之前這個效果是由 HTML、css、JavaScript 一塊兒寫的,並且當時留下了一個問題:如何禁止短時間內多次點擊 div 滑塊兒,防止出現頁面出現閃動情況。利用昨天晚上的一個多小時把這個重寫了一下,並且把 HTML 和 css 都直接在 JavaScript 中進行表達。使用方法把 totop.js 直接用 script 標籤引入 HTML 頁面。或者,直接把 totop.js
Time of Update: 2017-01-13
滾動到頂部: 代碼如下 複製代碼 $('.scroll_top').click(function(){$('html,body').animate({scrollTop: '0px'}, 800);}); 滾動到指定位置: 代碼如下
Time of Update: 2017-01-13
檢測是否包含特殊字元 代碼如下複製代碼 <script language="javascript" type="text/javascript"> var title='js判斷字串是否包含特殊字元~`'; //正則中添加需要驗證的特殊字元 var vkeyWords=/[`~!@
Time of Update: 2017-01-13
1, 使用2種以上的方式請求js用createElement建立一個script,然後appendChild到head標籤裡2, 直接使用write轉義後輸出2, 判斷一個字元是否以字母開頭, 然後後面是 字母+數字+_, 總長度為5-20正則 /^[a-z][0-9a-z_]{4,19}$/i3, 判斷一個字串裡重複最終的那個是啥,重複次數是多少1, 使用split分隔, 然後遍曆, 如果臨時對象裡不存在則=1,存在則++, 然後得到以字元為key,次數為value的臨時對象, 然後for
Time of Update: 2017-01-13
例子 代碼如下複製代碼 var F = function(name){ this.name = name; };F.prototype.getName = function(){ return this.name;};var f = new F("哈哈");var dosome = function(fun){ if(typeof fun === &
Time of Update: 2017-01-13
再可以將前後端代碼分離,崗位清晰,使背景程式人員可更好的去完成邏輯運算,而前端人員崗位更加專精、統一。js模板引擎越來越多的得到應用,如今已經出現了幾十種js模板引擎,國內各大互連網公司也都開發了自己的js模板引擎(淘寶的kissy
Time of Update: 2017-01-13
先來看個例子有時我們需要用cookie儲存使用者名稱,記錄登入狀態,如何正確判斷該機使用者cookie是否存在呢?不能簡單使用a!=”這樣的寫法。 代碼如下複製代碼 a=getCookie("username3"); c_start=document.cookie.indexOf("username3="); if(c_start == -1){