Time of Update: 2017-01-18
JavaScript的優勢之一是其如何處理非同步代碼。非同步代碼會被放入一個事件隊列,等到所有其他代碼執行後才進行,而不會阻塞線程。然而,對於初學者來說,書寫非同步代碼可能會比較困難。而在這篇文章裡,我將會消除你可能會有的任何困惑。理解非同步代碼JavaScript最基礎的非同步函數是setTimeout和setInterval。setTimeout會在一定時間後執行給定的函數。它接受一個回呼函數作為第一參數和一個毫秒時間作為第二參數。以下是用法舉例: console.lo
Time of Update: 2017-01-18
哇——是個危險的題目,對嗎?我們對於什麼是本質的理解當然會隨著我們對要解決問題的理解而變化。因此我不會說謊——一年前我所理解的本質很不幸並不完整,因為我確信我將要寫的已經快伴隨我有6個月之久。所以,這篇文章是我在發現JavaScript中成功的運用用戶端訊息模式的一些關鍵要點時的一個掠影。1.)
Time of Update: 2017-01-18
設計是一個很普遍的概念,一般是可以理解為為即將做的某件事先形成一個計劃或架構。
Time of Update: 2017-01-18
我喜歡策略設計模式。我儘可能多的試著去使用它。究其本質,策略模式使用委託去解耦使用它們的演算法類。這樣做有幾個好處。他可以防止使用大條件陳述式來決定哪些演算法用於特定類型的對象。將關注點分離開來,因此降低了用戶端的複雜度,同時還可以促進子類化的組成。它提高了模組化和可測性。每一個演算法都可以單獨測試。每一個用戶端都可以類比演算法。任意的用戶端都能使用任何演算法。他們可以互調。就像樂高積木一樣。為了實現策略模式,通常有兩個參與者:該策略的對象,封裝了演算法。用戶端(上下文)對象,以隨插
Time of Update: 2017-01-18
我一直在使用一個小工具,並發現它在構建Javascript應用過程中非常實用。它是一個非常簡單的模板函數,速度快,支援緩衝,並容易使用。我想分享一下使用它的過程中的一些技巧。以下是模板函數的代碼(你可以從正要出版的Secrets of the JavaScript Ninja一書中得到更精鍊的版本): // 簡單JavaScript模板引擎// John Resig - http://ejohn.org/ - MIT Licensed(function(){ var
Time of Update: 2017-01-18
你可能注意到了,最近的一段時間越來越多的Web應用有變複雜的趨勢,重心從服務端慢慢向著用戶端轉移。 這是個正常的趨勢嗎?我不知道。支援和反對者的討論就像是在討論複活者和聖誕節哪一個更好一樣; 很難說哪一方觀點就是完全正確的。因此,本文不會探討究竟哪一方是對的,不過我還是試圖解釋一下使用大家所熟知的物件導向編程也許可以成功的解決用戶端編程中存在的一些問題。不太規範的代碼的樣本為了顧及一個應用的響應以及使用者體驗, 導致我們建立了持續增長的複雜的代碼, 這些代碼變得難於理解和維護。
Time of Update: 2017-01-18
許多的語言,為了將非同步模式處理得更像平常的順序,都包含一種有趣的方案庫,它們被稱之為promises,deferreds,或者futures。JavaScript的promises ,可以促進關注點分離,以代替緊密耦合的介面。 本文講的是基於Promises/A 標準的JavaScript promises。[http://wiki.commonjs.org/wiki/Promises/A]Promise的用例: 執行規則
Time of Update: 2017-01-18
什麼是國際化?國際化(Internationalization的縮寫是i18n——i,中間18個字元,n)是將軟體處理的能讓來自各種地方使用各種語言的使用者更簡單使用的一個過程。假定某個使用者來自某個地方說某種語言,他可能不經意間就得到一些錯誤提示。尤其是你甚至都沒有做這種假設。 function formatDate(d){ // Everyone uses month/date/year...right? var month = d.getMonth() + 1; var
Time of Update: 2017-01-18
全文檢索搜尋,與機器學習領域其他大多數問題不同,是一個 Web 程式員在日常工作中經常遇到的問題。客戶可能要求你在某個地方提供一個搜尋方塊,然後你會寫一個類似 WHERE title LIKE %:query% 的 SQL
Time of Update: 2017-01-18
前言--講在前面我想有很多以前很少接觸後台程式設計語言的初學者朋友跟我一樣,對javascript裡面一系列的“名詞”搞的一頭霧水。好像大概知道講的是什麼,但其實理解的還是不清楚;我想,學習任何一種知識,首當其衝應該把最基本的名詞解釋搞清楚(知道它講的到底是什麼,有助於我們更好的理解它。)即知其然知其所以然,這樣對以後的進階學習是很有協助的。下面的簡單講一下我自己對這樣一些看似不重要但又不得不清楚的知識點的理解。(若有出入,歡迎指正)1.什麼是建構函式建構函式
Time of Update: 2017-01-18
表單驗證用於發生在伺服器,用戶端已經輸入所有必要的資料,然後按下提交按鈕之後。如果一些已被輸入的用戶端的資料的已在錯誤形式或者被簡單地丟失,則伺服器將必須的所有資料發送回用戶端,並請求的形式以正確的資訊重新提交。這是一個漫長的過程,會增加伺服器負擔。JavaScript中,提供了一種方法將其發送到web伺服器之前驗證用戶端的電腦上的形式的資料。表單驗證通常執行兩種方式。 基本驗證 -
Time of Update: 2017-01-18
有三種類型的編程錯誤:(1)語法錯誤和(2)執行階段錯誤(3)邏輯錯誤:語法錯誤:語法錯誤,也被稱為解析錯誤,在編譯時間進行傳統的程式設計語言,並出現在JavaScript解釋時。例如,下面一行將導致一個語法錯誤,因為它缺少一個右括弧:<script
Time of Update: 2017-01-18
本文件物件模型允許訪問所有的文檔內容和修改,由全球資訊網協會(W3C)規範。幾乎所有的現代瀏覽器都支援這種模式。在W3C DOM規範的大部分傳統DOM的功能,而且還增加了新的重要的功能。除了支援forms[ ], images[ ]和文檔對象的其它數組屬性,它定義了方法,使指令碼來訪問和操縱的任何文件項目,而不只是專用元件狀的表單和映像。文件屬性在W3C DOM:此模型支援所有傳統DOM提供的屬性。此外,這裡是文件屬性,可以使用W3C DOM訪問列表: 文檔方法在W3C
Time of Update: 2017-01-18
這是將其在JavaScript語言早期版本中引入的模型。大家都被所有瀏覽器都支援,但只允許訪問檔案的某些關鍵區段,如表單,表單元素和映像。該模型提供了若干個唯讀屬性,如標題,URL和上次更改提供關於文檔整體的資訊。除了有由該模型可用於設定和擷取文檔的屬性值提供各種方法。文件屬性在傳統DOM:下面是文件屬性,可以使用傳統DOM訪問列表: 文檔方法在傳統DOM:這裡是由傳統DOM支援的方法列表: 例子:我們可以找到任何HTML元素,使用HTML
Time of Update: 2017-01-18
test方法為Regex匹配的文本搜尋字串。如果找到匹配,則返回true; 否則返回false。文法RegExpObject.test( string );下面是參數的詳細資料: string : 要搜尋的字串傳回值: 如果找到一個匹配,如果不為空白,則返回匹配的文本。例子:<html><head><title>JavaScript RegExp test Method</title></
Time of Update: 2017-01-18
多行Regex是對象的唯讀布爾屬性。它指定是否一個特定的Regex進行多行匹配,即,不管是否使用“m”屬性建立。文法RegExpObject.multiline下面是參數的詳細資料: NA傳回值: 如果“m”修改被設定返回“TRUE”,否則返回“FALSE”。例子:<html><head><title>JavaScript RegExp multiline
Time of Update: 2017-01-18
ignoreCase是Regex對象的唯讀布爾屬性。它指定是否一個特定的Regex執行不區分大小寫匹配。,它與“i”屬性建立。文法RegExpObject.ignoreCase下面是參數的詳細資料: NA傳回值: 如果“i”修改被設定返回“TRUE”,否則返回“FALSE”。例子:<html><head><title>JavaScript RegExp ignoreCase
Time of Update: 2017-01-18
global是Regex對象的唯讀布爾屬性。它指定是否一個特定的Regex進行全域匹配。否則它使用“g”屬性建立。文法RegExpObject.global下面是參數的詳細資料: NA傳回值: 如果“g”修改被設定返回“TRUE”,否則返回“FALSE”。例子:<html><head><title>JavaScript RegExp global
Time of Update: 2017-01-18
Regex是一個對象,它描述了字元模式。JavaScript的RegExp類表示Regex和字串和Regex定義,使用Regex來進行強大的模式比對和搜尋和替換文本功能的方法。文法:Regex可以用RegExp( ) 構造這樣的定義:var pattern = new RegExp(pattern, attributes);or simplyvar pattern = /pattern/attributes;這裡是參數的說明: pattern:
Time of Update: 2017-01-18
這個方法返回一個數位正切值。tan 方法返回表示的角度的正切值。文法Math.tan( x ) ;下面是參數的詳細資料: x: 一個數字,表示以角度表示弧度傳回值: 返回一個數位正切值例子:<html><head><title>JavaScript Math tan() Method</title></head><body><script