Time of Update: 2017-01-19
"快速排序"的思想很簡單,整個排序過程只需要三步: (1)在資料集之中,找一個基準點 (2)建立兩個數組,分別儲存左邊和右邊的數組 (3)利用遞迴進行下次比較看一個demo:http://jsdo.it/norahiko/oxIy/fullscreen(網頁開啟可能較慢,慢慢等待吧)<script type="text/javascript"> function quickSort(arr){ if(arr.length<=1){ return
Time of Update: 2017-01-19
在上一篇文章中,介紹了原型的概念,瞭解到在javascript中建構函式、原型對象、執行個體三個好基友之間的關係:每一個建構函式都有一個“守護神”——原型對象,原型對象心裏面也存著一個建構函式的“位置”,兩情相悅,而執行個體呢卻又“暗戀”著原型對象,她也在心裡留存了一個原型對象的位置。javascript本身不是物件導向的語言,而是基於對象的語言,對於習慣了其他OO語言的人來說,起初有些不適應,因為在這裡沒有“類”的概念,或者說“類”和“執行個體”不區分,更不要指望有“父類”、“子類”之分了。那
Time of Update: 2017-01-19
之前記錄過JavaScript中判斷為數字類型的多種方式,這篇看看如何判斷為整數類型(Integer)。JavaScript中不區分整數和浮點數,所有數字內部都採用64位浮點格式表示,和Java的double類型一樣。但實際操作中比如數組索引、位操作則是基於32位整數。方式一、使用取餘運算子判斷任何整數都會被1整除,即餘數是0。利用這個規則來判斷是否是整數。複製代碼 代碼如下:function isInteger(obj) { return obj%1 ===
Time of Update: 2017-01-19
我們知道JavaScript提供了typeof運算子,因此最容易想到的是用typeof來判斷是否是number類型。複製代碼 代碼如下:function isNumber(obj) { return typeof obj ===
Time of Update: 2017-01-19
數組分類:1、從數組的下標分為索引數組、關聯陣列複製代碼 代碼如下:/* 索引數組,即通常情況下所說的數組 */var ary1 = [1,3,5,8];//按索引去取數組元素,從0開始(當然某些語言實現從1開始)//索引實際上就是序數,一個整型數字alert(ary1[0]);alert(ary1[1]);alert(ary1[2]);alert(ary1[3]); /* 關聯陣列,指以非序數類型為下標來存取的數組 python中稱為字典 */var ary2 = {};
Time of Update: 2017-01-19
很多人用過 style.color、style.display 等直接設定元素的樣式屬性,但是 style.cssText 用過的人就不多了。cssText 本質是什嗎?cssText 的本質就是設定 HTML 元素的 style 屬性值。cssText 怎麼用?複製代碼 代碼如下:document.getElementById("d1").style.cssText = "color:red; font-size:13px;";看了這個樣本後,相信不說,也知道 style.cssText
Time of Update: 2017-01-19
Javascript在互連網上名聲很臭,但你又很難再找到一個像它這樣如此動態、如此被廣泛使用、如此根植於我們的生活中的另外一種語言。它的低學習門檻讓很多人都稱它為學前指令碼語言,它另外一個讓人嘲笑的東西是動態語言的概念是偏偏使用了高標準的待用資料類型。其實,你和Javascript都站錯了立場,而現在,你讓Javascript很生氣。這裡有五個原因能說明你的Javascript技術很爛。1.
Time of Update: 2017-01-19
上次研究觀察者模式,很多文章說它也叫Subscribe/Publish(發布/訂閱模式)。可在《Javascript設計模式》一書中,這兩種模式還是有些區別的。書中原話如下:1.Observer模式要求希望接收到主題通知者的觀察者必須訂閱內容改變的事件。2.Subscribe/Publish模式使用了一個主題/事件通道,這個通道介於訂閱者和發行者之間。該事件系統允許代碼定義應用程式的特定事件,該事件可以傳遞自訂參數,自訂參數包含訂閱者所需要的值。其目的是避免訂閱者和發行者產生依賴關係。與Obse
Time of Update: 2017-01-19
前不久有個網友問我在前端使用requireJs和seajs的問題,我當時問他你們公司以前有沒有自己編寫的javascript庫,或者javascript架構,他的回答是什麼都沒有,他只是聽說像requirejs和seajs是新東西新技術,很有價值所以想用它。 這位網友的問題引起了我對javascript模組載入技術的思考,上篇文章我給出了自己寫的一個javascript庫的基本結構,其實寫這篇文章的一個起因就是因為我想使用requirejs或者seajs這樣的技術來重新設計我寫javascri
Time of Update: 2017-01-19
如何能做出高效的web前端程式是我每次做前端開發都會不自覺去考慮的問題。幾年前雅虎裡牛逼的前端工程師們出了一本關於提升web前端效能的書籍,轟動了整個web開發技術界,讓神秘的web前端最佳化問題成為了大街的白菜,web前端最佳化變成了菜鳥和大牛都能回答的簡單問題,當整個業界都知道了驚天秘密的答案,那麼現有的最佳化技術已經不能對你開發的網站產生的質的飛越,為了讓我們開發的網站效能比別人的網站更加優秀,我們需要更加深入的獨立思考,儲備更加優秀的技能。Javascript裡的事件系統是我想到的第一個
Time of Update: 2017-01-19
ECMAScript5中引入的strict 模式,通過讓JavaScript運行環境對一些開發過程中最常見和不易發現的錯誤做出和當前不同的處理,來讓開發人員擁有一個”更好”的JavaScript語言。很長一段時間內,由於只有Firefox支援strict 模式,我曾對strict 模式表示懷疑。但到了今天,所有主流的瀏覽器都在他們的最新版本中支援了strict 模式(包括IE10,Opera12和Android4,IOS5)是時候開始使用strict 模式了。strict 模式能起到什麼作用
Time of Update: 2017-01-19
從今天這章開始,我將會著重介紹KitJs的事件管理的內容,盡量用淺顯的語言給大家揭露主流的js架構是如何在內部實現自己獨立的事件管理功能的。(一)普通的Dom事件 我們一般可以通過支援在HTML寫上事件<a
Time of Update: 2017-01-19
Kit作為一個UI庫,我並沒有打算讓大家都來學習我的Kit的Core,背熟我的API,這種跟風的學習方式一點意義都沒有,今天jQuery熱,大家都是學jQ,明天SeaJs火了,大家都去炒SeaJs,所以我在KitJs裡面,專門為jQ的使用者準備了一個文法糖(Suger.js),完全類比jQ的API,除了實現,介面都一樣,也方便大家直接拿來主義的改造Kit的組件。當然,作為一個純技術Fan來說,深入理解一門技術是如何?的,遠比拿來主義更有趣的多^_^。當然了,如果你出於KPI考慮,或者老闆的老闆的
Time of Update: 2017-01-19
Kitjs,(http://xueduany.github.com/KitJs),是我2011年底,離開淘寶UED之後,自己搞起的一套HTML5的前端widget庫,原本的用途主攻手機端HTML頁面互動組件使用,正如其字面意思Kit一樣,願景是做一個嬌小,實用,既可以直接拿來用,也可以很方便做2次開發的一套組件。後來由於項目的越做越大,組件數的膨脹,也加入PC端瀏覽器(IE6+,FF,chrome核心系列等等)的支援,不再僅限於原來手機開發領域,開始正式邁向全平台。所以近期也對原來的所有模組按照
Time of Update: 2017-01-19
kissy簡介
Time of Update: 2017-01-19
1、使用js檔案管理代碼所有代碼盡量放在js檔案中,然後再html檔案中使用script引入,引入時注意放在body標籤後面,並且不使用type或者language。2、書寫縮排使用4個空白欄框縮排,注意不要使用tab鍵進行縮排。3、斷句注意行長,每行不超過80個字元,超過時要進行適當斷句,斷句應該再操作符後面進行,最理想的是在逗號(,)後面進行斷句,斷句後下一行使用8格縮排。4、註解一般使用單行注釋,塊注釋一般用於文檔。5、變數聲明所有變數使用之前先聲明,未聲明的變數會自動作為全域變數。全文應
Time of Update: 2017-01-19
眾所周知,JavaScript是一門非常流行的程式設計語言,開發人員用它不僅可以開發出炫麗的Web程式,還可以用它來開發一些行動裝置
Time of Update: 2017-01-19
整理一下js物件導向中的封裝和繼承。1.封裝 js中封裝有很多種實現方式,這裡列出常用的幾種。1.1 原始模式產生對象 直接將我們的成員寫入對象中,用函數返回。 缺點:很難看出是一個模式出來的執行個體。代碼:複製代碼 代碼如下: function Stu(name, score) {
Time of Update: 2017-01-19
一、為什麼JavaScript是單線程?JavaScript語言的一大特點就是單線程,也就是說,同一個時間只能做一件事。那麼,為什麼JavaScript不能有多個線程呢?這樣能提高效率啊。JavaScript的單線程,與它的用途有關。作為瀏覽器指令碼語言,JavaScript的主要用途是與使用者互動,以及操作DOM。這決定了它只能是單線程,否則會帶來很複雜的同步問題。比如,假定JavaScript同時有兩個線程,一個線程在某個DOM節點上新增內容,另一個線程刪除了這個節點,這時瀏覽器應該以哪個線
Time of Update: 2017-01-19
在哪裡放置 JavaScript 代碼?通常情況下,JavaScript 代碼是和 HTML 程式碼一起使用的,可以將 JavaScript 代碼放置在 HTML 文檔的任何地方。但放置的地方,會對 JavaScript 代碼的正常執行會有一定影響,具體如下所述。放置於<head></head>之間將 JavaScript 代碼放置於 HTML 文檔的 <head></head> 標籤之間是一個通常的做法。由於 HTML