Time of Update: 2017-01-19
最近在使用jQuery的$.each方法時很,突然想到$.each($(‘div'),function(index,entity){});中的這個index和entity是哪冒出來的,而且可有可無的,而且這麼高大上的能告訴我們當前遍曆的下標和執行個體。所以看了一下jQuery原始碼,是這麼寫的:調試的時候走的是標紅的這段代碼,然後用到了callback.call這個函數,於是翻看了一下《js進階程式設計》,其中有比較深的解釋。首先,function是一個指向Function對象,函數名是一個指向
Time of Update: 2017-01-19
問題:請編寫一個JavaScript函數parseQueryString,它的用途是把URL參數解析為一個對象。eg:var obj=parseQueryString(url);建立對象的三種形式:一:var Person=new Object();Person.name="Sun";Person.age=24;二:var Person=new Object();Person["name"]="Sun";Person["age"]=24;三:對象字面量運算式var Person={name: "
Time of Update: 2017-01-19
《Practical Common Lisp》的作者 Peter Seibel 曾說,如果你需要一種模式,那一定是哪裡出了問題。他所說的問題是指因為語言的天生缺陷,不得不去尋求和總結一種通用的解決方案。不管是弱類型或強型別,靜態或動態語言,命令式或說明式語言、每種語言都有天生的優缺點。一個牙買加運動員, 在短跑甚至拳擊方面有一些優勢,在練瑜伽上就欠缺一些。術士和暗影牧師很容易成為一個出色的輔助,而一個背著梅肯滿地圖飛的敵法就會略顯尷尬。 換到程式中,
Time of Update: 2017-01-19
你可能知道,Javascript語言的執行環境是”單線程“(single
Time of Update: 2017-01-19
觀察者模式( 又叫發行者-訂閱者模式 )應該是最常用的模式之一. 在很多語言裡都得到大量應用. 包括我們平時接觸的dom事件. 也是js和dom之間實現的一種觀察者模式.複製代碼 代碼如下:div.onclick = function click (){alert ( ”click' )}只要訂閱了div的click事件. 當點擊div的時候, function click就會被觸發。那麼到底什麼是觀察者模式呢. 先看看生活中的觀察者模式。好萊塢有句名言.
Time of Update: 2017-01-19
網頁頁面上的圖片尺寸似乎都千篇一律。我們最常見到的帶有多圖的文章頁面中,圖的大小通常是和頁面的寬度一致,這樣看起來,頁面就是一個直筒形,這樣的布局看多了就會覺得很單調。之所以形成這樣的局面,我想很大程度上是因為老式瀏覽器的限制。但隨著現代瀏覽器(Firefox/Google/IE11)的普及,瀏覽器對頁面設計的限制越來越少,Web程式員的想象能力能夠得到極大的發揮。比如,冷知識:你知道每個視窗都有的 [x]
Time of Update: 2017-01-19
在上一篇文章中,介紹了原型的概念,瞭解到在javascript中建構函式、原型對象、執行個體三個好基友之間的關係:每一個建構函式都有一個“守護神”——原型對象,原型對象心裏面也存著一個建構函式的“位置”,兩情相悅,而執行個體呢卻又“暗戀”著原型對象,她也在心裡留存了一個原型對象的位置。javascript本身不是物件導向的語言,而是基於對象的語言,對於習慣了其他OO語言的人來說,起初有些不適應,因為在這裡沒有“類”的概念,或者說“類”和“執行個體”不區分,更不要指望有“父類”、“子類”之分了。那
Time of Update: 2017-01-19
常用的幾種對象建立模式使用new關鍵字建立最基礎的對象建立方式,無非就是和其他多數語言一樣說的一樣:沒對象,你new一個呀!var gf = new Object();gf.name = "tangwei";gf.bar = "c++";gf.sayWhat = function() { console.log(this.name + "said:love you
Time of Update: 2017-01-19
setTimeout經常被用於順延強制某個函數,用法為:複製代碼 代碼如下:setTimeout(function(){…}, timeout);有時為了進行非同步處理,而使用setTimeout(function…,0);比如:複製代碼 代碼如下:function f(){… // get readysetTimeout(function(){…. // do something}, 0); return
Time of Update: 2017-01-19
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>每天一個JavaScript執行個體-處理textarea中的字元成每一行</title> <script> function clicka(){ console.log("aaa");
Time of Update: 2017-01-19
//用逗號隔開字串成數組列印。 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>每天一個JavaScript執行個體-分割字串</title> <script> window.onload = function(){ var keywordList = prompt("輸入字元,用","分開"); var
Time of Update: 2017-01-19
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一個JavaScript執行個體-去除字串末尾的空白</title> <script> function white(){ var input = document.getElementById("
Time of Update: 2017-01-19
題外話:很早就接觸了JavaScript,但是沒有留意它,看到很多很酷、很炫的網頁,都有JavaScript的身影,Google在JavaScript的應用對我的影響最大了。我決心從頭開始學習它,所以有了JavaScript & Ajax這個分欄。我打算把這個分欄作為學習筆記記錄下來,因此每篇文章筆記可能很簡短,一兩句話註解而已。JavaScript允許一個函數傳遞個數可變的參數,因為有arguments這個內建對象,它一個函數傳遞的所有參數的數組。舉個例子,就明白了。 複製代碼
Time of Update: 2017-01-19
面板模式(門面模式),是一種相對簡單而又無處不在的模式。面板模式提供一個高層介面,這個介面使得用戶端或子系統更加方便調用。用一段再簡單不過的代碼來表示:複製代碼 代碼如下:var getName = function(){return ”svenzeng”}var getSex = function(){return ‘man'}如果你需要分別調用getName和getSex函數. 那可以用一個更高層的介面getUserInfo來調用.複製代碼 代碼如下:var getUserInfo =
Time of Update: 2017-01-19
Javascript在瀏覽器中的效能,可以說是前端開發人員所要面對的最重要的可用性問題。在Yahoo的Yslow23條規則當中,其中一條是將JS放在底部 。原因是,事實上,大多數瀏覽器使用單進程處理UI和更新Javascript運行等多個任務,而同一時間只能有一個任務被執行。Javascript運行了多長時間,那麼在瀏覽器空閑下來響應使用者互動之前的等待時間就有多長。從基本層面說,這意味著<script>標籤的出現使整個頁面因指令碼解析、運行而出現等待。不論實際的
Time of Update: 2017-01-19
策略模式的意義是定義一系列的演算法,把它們一個個封裝起來,並且使它們可相互替換。一個小例子就能讓我們一目瞭然。回憶下jquery裡的animate方法.複製代碼 代碼如下:$( div ).animate( {“left: 200px”}, 1000, ‘linear' ); //勻速運動$( div ).animate( {“left: 200px”}, 1000, ‘cubic' ); //三次方的緩動這2句代碼都是讓div在1000ms內往右移動200個像素.
Time of Update: 2017-01-19
一、為什麼JavaScript是單線程?JavaScript語言的一大特點就是單線程,也就是說,同一個時間只能做一件事。那麼,為什麼JavaScript不能有多個線程呢?這樣能提高效率啊。JavaScript的單線程,與它的用途有關。作為瀏覽器指令碼語言,JavaScript的主要用途是與使用者互動,以及操作DOM。這決定了它只能是單線程,否則會帶來很複雜的同步問題。比如,假定JavaScript同時有兩個線程,一個線程在某個DOM節點上新增內容,另一個線程刪除了這個節點,這時瀏覽器應該以哪個線
Time of Update: 2017-01-19
在一個項目當中,我們需要把資料庫中的Xml欄位中的資訊表現在頁面中,如果用Sql進行操作,讀取。這樣的話,必然導致太複雜,於是我想到了,如果把Xml欄位先讀出來,然後用Js去操作,這樣豈不是簡單了許多,於是網上尋找了一些資料。實現了JS讀Xml欄位資訊的方法。首先我們在頁面中放一個TextBox 用來放Xml欄位。切記:不可用Label,因為萬一Xml欄位資訊中有“”這種符號時,頁面會產生Js錯誤。接下去,就是重點了。付JS代碼:function createXml(str){
Time of Update: 2017-01-19
複製代碼 代碼如下:<script type="text/javascript">function checkUrl() {var url = document.getElementById('url').value;if (url==''){alert('URL 地址不可為空');return false;} else if (!isURL(url)) {alert('URL 的格式應該是 http://www.jb51.net');return false;} else
Time of Update: 2017-01-19
JavaScript代碼/*設定農曆日期*/var CalendarData=new Array(100);var madd=new Array(12);var numString="一二三四五六七八九十";var monString="正二三四五六七八九十冬臘";var cYear,cMonth,cDay,TheDate;// 農曆每月只能是29或30天,一年用12(或13)個二進位位表示,從高到低,對應位為1表示30天,否則29天CalendarData = new Array(0xA4B,