Time of Update: 2017-01-19
介紹原型模式(prototype)是指用原型執行個體指向建立對象的種類,並且通過拷貝這些原型建立新的對象。本文對於原型模式,我們可以利用JavaScript特有的原型繼承特性去建立對象的方式,也就是建立的一個對象作為另外一個對象的prototype屬性值。原型對象本身就是有效地利用了每個構造器建立的對象,例如,如果一個建構函式的原型包含了一個name屬性(見後面的例子),那通過這個建構函式建立的對象都會有這個屬性。在現有的文獻裡查看原型模式的定義,沒有針對JavaScript的,你可能發現很多講
Time of Update: 2017-01-19
介紹職責鏈模式(Chain of responsibility)是使多個對象都有機會處理請求,從而避免請求的寄件者和接受者之間的耦合關係。將這個對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理他為止。也就是說,請求以後,從第一個對象開始,鏈中收到請求的對象要麼親自處理它,要麼轉寄給鏈中的下一個候選者。提交請求的對象並不明確知道哪一個對象將會處理它——也就是該請求有一個隱式的接受者(implicit receiver)。根據運行時刻,任一候選者都可以響應相應的請求,候選者的數目是任意的,
Time of Update: 2017-01-19
快過年放假了,也終於閑下來了。每天遊覽於各種技術文章中,這種狀態好極了。下午看篇關於js的文章,其中有如下這麼一段引起了我的注意。複製代碼 代碼如下:(function () { var names = []; return function (name) { addName(name); } &
Time of Update: 2017-01-19
在上一篇文章我們對預解釋作了概述,在寫這篇博文前打算寫幾個經典案例,考慮到那些案例綜合性比較強,也就循序漸進的有了這篇博文,這樣對於學習和深入JavaScript也更加容易入手。序一同事去面試,面試官問了一道題:你寫一個閉包我看下?於是同事火速寫出如下代碼:複製代碼 代碼如下:function fn(){ alert('Hello JavaScript
Time of Update: 2017-01-19
javascript:運算子 其實運算子大家要是有電腦語言基礎應該都知道,可能甚至比我還精通,這樣我就不多解釋了,就來說說其它幾個生疏的吧! 1、in 運算子:in運算子要求其左邊的運算數是一個字串,或可以被轉換為字串,右邊的運算數是一個數組或者對象,如果左邊的值是右邊的對象的一個屬性,它返回true. 複製代碼 代碼如下: var objvalue = {x:1,y:7}; document.write("x is in objvalue:" + ("x" in objvalue)
Time of Update: 2017-01-19
javascript是一個基於對象和事件驅動,並且具有安全性的指令碼語言,應用很廣泛,不僅僅是網頁,不要被jsp給困住。 基於對象,就是不需要指定變數的類型,你給他一個3,它知道是整型,如果給賦值'3',它就知道是char。 事件驅動,就是單擊啊,之類的事件進行驅動。 javascript優點:網頁互動性強,簡單易用。js主要是基於用戶端運行,很大程度上減少了伺服器的負荷。 javascript是指令碼程式設計語言:採用程式段方式實現,與HTML結合,java的編譯器其實就是瀏覽器本身。
Time of Update: 2017-01-19
JavaScript對象與傳統的物件導向中的對象幾乎沒有相似之處,傳統的物件導向語言中,建立一個對象必須先有對象的模板:類,類中定義了對象的屬性和操作這些屬性的方法。通過執行個體化來構築一個對象,然後使用對象間的協作來完成一項功能,通過功能的集合來完成整個工程。而Javascript中是沒有類的概念的,藉助JavaScript的動態性,我們完全可以建立一個空的對象(而不是類),通過像對象動態添加屬性來完善對象的功能。
Time of Update: 2017-01-19
在物件導向程式設計語言中,對於this關鍵字我們是非常熟悉的。比如C++、C#和Java等都提供了這個關鍵字,雖然在開始學習的時候覺得比較難,但只要理解了,用起來是非常方便和意義確定的。JavaScript也提供了這個this關鍵字,不過用起來就比經典OO語言中要"混亂"的多了。 下面就來看看,在JavaScript中各種this的使用方法有什麼混亂之處?
Time of Update: 2017-01-19
Javascript 數組去重的四種方法四種演算法來實現這個目的:第一種方法:Array.prototype.unique1 = function () { var n = []; //一個新的臨時數組 for (var i = 0; i < this.length; i++) //遍曆當前數組 { //如果當前數組的第i已經儲存進了臨時數組,那麼跳過, //否則把當前項push到臨時數組裡面 if (n.indexOf(this[i]) == -1)
Time of Update: 2017-01-19
一個div的運動其實就是它與瀏覽器邊框的距離在變動。如果他變化的速率一定,那就是勻速運動;如果變化的速率不一定,那麼就是變速運動。當,變動率與聚離瀏覽器邊框的距離成比例的話,那麼就可以說是div在做緩衝運動。 其實,很簡單,就是用一個定時器(timer),每隔一段時間來改變div聚瀏覽器邊框的距離。 比如勻速運動: 進入定時器:(每隔30ms做) if(是否到達終點) { 停止定時器} else do{ 改變距離} 改變距離的方法決定是勻速還是變速(緩衝)運動。 勻速的比如: 複製代碼
Time of Update: 2017-01-19
很多程式繞過這個問題,往往人工來決定在何處截斷,太麻煩了。 實現內容:截斷一段含有HTML代碼的文本,但是不會出現圍堵標記沒有封閉的問題。 一個PHP版本的在這裡!: 自動產生文章摘要[PHP版本]。 核心部分如下: 複製代碼 代碼如下:function Generate_Brief(text,length){
Time of Update: 2017-01-19
一、區分大小寫
Time of Update: 2017-01-19
argument是javascript中函數的一個特殊參數,例如下文,利用argument訪問函數參數,判斷函數是否執行複製代碼 代碼如下:<script type="text/javascript"> function sayHello () { if (arguments[0] ==
Time of Update: 2017-01-19
迴圈語句的作用是反覆的執行同一段代碼,儘管分幾種不同的類型,但其原理幾乎相同;只要給定的條件滿足,包含在迴圈體內的語句會不斷執行,一旦條件不再滿足則終止。while迴圈是前測試迴圈,這意味著是否終止的條件判斷是在執行代碼之前,因此,迴圈的主體可能根本不執行。其文法如下:while(expression) statement當expression為ture時,程式會不斷執行statement語句,直到expression為false時。兩個案例複製代碼 代碼如下: <script
Time of Update: 2017-01-19
一個網站的前端由三個層構成。由XHTML構建的結構層,它包括結構化和有語義的標籤,以及網站的內容。可以在這一層之上增加一個表現層(CSS)和一個行為層(JavaScript),它們使網站看起來更漂亮,對使用者更友好。這三層之間應該保持嚴格的分離。打個比方來說,應該具有這樣的可能性:可以重寫整個表現層而完全不需要觸動到結構層和行為層。 除了這種嚴格的分離,表現層和行為層都需要得到來自結構層的指令。它們必須知道在哪裡應用樣式,在什麼時候初始化行為——換句話說:它們需要觸發器。
Time of Update: 2017-01-19
上個月,我做了一次分享,詳細介紹了Unicode字元集,以及JavaScript語言對它的支援。下面就是這次分享的講稿。 一、Unicode是什嗎? Unicode源於一個很簡單的想法:將全世界所有的字元包含在一個集合裡,電腦只要支援這一個字元集,就能顯示所有的字元,再也不會有亂碼了。 它從0開始,為每個符號指定一個編號,這叫做"碼點"(code point)。比如,碼點0的符號就是null(表示所有二進位位都是0)。複製代碼 代碼如下:U+0000 =
Time of Update: 2017-01-19
概述HTTP協議是一種無狀態協議,伺服器端本身不具有識別用戶端的能力,必須藉助外部機制,比如session和cookie,才能與特定用戶端保持對話。這多多少少帶來一些不便,尤其在伺服器端與用戶端需要持續交換資料的場合(比如網路聊天),更是如此。為瞭解決這個問題,HTML5提出了瀏覽器的WebSocket
Time of Update: 2017-01-19
運用JS設定cookie、讀取cookie、刪除cookie
Time of Update: 2017-01-19
js中一共5個原始值,6個typeof能判斷的,9個原生的內建的建構函式。 這569,構成了js語言的基礎。 5個原始值是:數字,字元,布爾,null,undefined typeof能判斷:數字,字元,布爾,object,function,undefined。 注意null和數組,tyopeof都輸出object。
Time of Update: 2017-01-19
首先,我想說一下Javascript的裝載和執行。通常來說,瀏覽器對於Javascript的運行有兩大特性:1)載入後馬上執行,2)執行時會阻塞頁面後續的內容(包括頁面的渲染、其它資源的下載)。於是,如果有多個js檔案被引入,那麼對於瀏覽器來說,這些js檔案被被串列地載入,並依次執行。因為javascript可能會來操作HTML文檔的DOM樹,所以,瀏覽器一般都不會像並行下載css檔案並行下載js檔案,因為這是js檔案的特殊性造成的。所以,如果你的javascript想操作後面的DOM元素,基本