Time of Update: 2017-01-19
"快速排序"的思想很簡單,整個排序過程只需要三步: (1)在資料集之中,選擇一個元素作為"基準"(pivot)。 (2)所有小於"基準"的元素,都移到"基準"的左邊;所有大於"基準"的元素,都移到"基準"的右邊。 (3)對"基準"左邊和右邊的兩個子集,不斷重複第一步和第二步,直到所有子集只剩下一個元素為止。舉例來說,現在有一個資料集{85, 24, 63, 45, 17, 31, 96,
Time of Update: 2017-01-19
replace()最簡單的算是能力就是簡單的字元替換。範例程式碼如下: [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行] 我想大家運行後可以看到結果,它只替換了首字母。但如果加上Regex結果就不一樣了!呵呵,沒錯。replace()支援Regex,它可以按照Regex的規則匹配字元或字串,然後給予替換! [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]
Time of Update: 2017-01-19
this是物件導向語言中的一個重要概念,在JAVA,C#等大型語言中,this固定指向運行時的當前對象。但是在javascript中,由於 javascript的動態性(解釋執行,當然也有簡單的先行編譯過程),this的指向在運行時才確定。這個特性在給我們帶來迷惑的同時也帶來了編程上的 自由和靈活,結合apply(call)方法,可以使JS變得異常強大。2.變化的this
Time of Update: 2017-01-19
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]寫成函數可以這樣: 複製代碼 代碼如下:<script type="text/javascript"> function trim(str){ //刪除左右兩端的空格 return str.replace(/(^\s*)|(\s*$)/g, ""); } function ltrim(str){ //刪除左邊的空格 return str.replace(/(^\s*)/g,""); } function
Time of Update: 2017-01-19
在傳統物件導向的程式設計語言裡,都會提供一種子類訪問父類的特殊文法,引文我們在實現子類方法往往需要父類方法的額外輔助。在這種情況下,子類通常會調用父類中的同名方法,最終以便完成工作。javascript雖然沒有類似上述的特殊文法,但我們可以造一個啊!function her(){};her.prototype.name = 'Anna';her.prototype.toString = function(){var const = this.constructor;return
Time of Update: 2017-01-19
每個JavaScript函數都有prototype屬性(javascript對象沒有這個屬性),這個屬性引用了一個對象,這個對象就是原型對象。javascript允許我們修改這個原型對象。修改有2種方式:方式1:在原有的原型對象上增加屬性或者方法function Person(){}Person.prototype.add = function(){alert(this.name);};Person.prototype.name = "aty";var p1 = new Person();p1.
Time of Update: 2017-01-19
函數直接量,適用於只使用一次,無需命名的函數。如下例,後者雖有fact函數名,但只用作自我調用。 複製代碼 代碼如下:var f = function(x) { return x*x; } var f = function fact(x) { if(x<=1) return 1; else return x*fact(x-1); }; 函數的參數數組:Arguments對象。常用arguments[i]引用,arguments.length等。 對象:
Time of Update: 2017-01-19
例子如下: 複製代碼 代碼如下:<script> /** *動物 */ function Animal(){ this.name='Amimal'; this.showName=function(){ alert(this.name); }; } /* *貓 */ function Cat(){ this.name='cat'; } var animal=new Animal;//建立動物對象 var cat=new Cat;//建立貓對象 animal.showName.call(
Time of Update: 2017-01-19
隱藏表格列,最常見的是如下方式:複製代碼 代碼如下:td.style.display = "none";這種方式的效率極低。例如,隱藏一個千行表格的某列,在我的筆記本(P4 M 1.4G,768M記憶體)上執行需要約 4000毫秒的時間,令人無法忍受。例如如下代碼:複製代碼 代碼如下:<body> <input type=button onclick=hideCol(1) value='隱藏第 2 列'> <input type=button
Time of Update: 2017-01-19
複製代碼 代碼如下:<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>javascript列印頁面</title> <script type="text/javascript"><!-- function fPrint(){ //隱藏不需要列印的內容.
Time of Update: 2017-01-19
<div id="test"> <div>第一個</div> <div>第二個</div> <div>第三個</div> <div>第四個</div> </div> <script> function test() { var els = document.getElementById("test").getElementsByTagName("div");
Time of Update: 2017-01-19
支援這些介面的指令碼語言有:JavaScript/JScript、VBScript、Perl和Python等。 WSC有以下特點。 小巧高效; 易於建立、維護和部署; 提供了建立COM組件的能力; 提供了訪問大量系統服務的能力。 用JavaScript編寫COM組件的核心工作是完成一個.wsc(Windows Scripting Component)檔案。.wsc檔案是一種標準的XML檔案,其格式如下: <?xml
Time of Update: 2017-01-19
JavaScript中的閉包真心是一個老生常談的問題了,最近面試也是一直問到,我自己的表述能力又不能完全支撐起來,真是抓狂。在回來的路上,我突然想到了一個很簡單的事情,其實我們在做項目時候,其實就經常用到閉包的,可是面試問的時候,回答又往往是我們經常搜到的答案,唉 不管是應付面試 還是真的想學點東西
Time of Update: 2017-01-19
其實這個問題和瀏覽器的版本息息相關,作為菜鳥的我,直到現在也沒有找到完美的解決辦法。沒辦法,因為業務必須要實現,所以只好用另一種方法去做了:通過重新導向URL實現開啟新視窗的同時“關閉”舊視窗 test1.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> test1 </TITLE> <META
Time of Update: 2017-01-19
下面是雲棲社區一直也在用的幾種方法 複製代碼 代碼如下: <script language="javascript" type="text/javascript"> function request(paras){ var url = location.href; var paraString = url.substring(url.indexOf("?")+1,url.length).split("&"); var paraObj = {} for (i=0;
Time of Update: 2017-01-19
不過是iframe[name]的話,就涉及onload的問題了...所以就麻煩了許多.... 以下只是加了延遲...並沒有"真正"的處理onload的問題....其實可以迴圈window.open來解決,不過懶的弄就略了...^^ <a href="javascript:void(0);" onclick="openC('http://www.jb51.net/', 'cs', this)">jb51.net</a> <script
Time of Update: 2017-01-19
今天我又碼了兩個特效:一個是用原生input[type=range]的,另一個完全自訂的;下面是完整代碼和示範:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> #tip{ position: absolute; top: 30px; left: 0;
Time of Update: 2017-01-19
近年來隨著作業系統的升級以及各種新技術的開發普及,拋棄低版本IE已經是大勢所趨,這對於前端人員來時是個好訊息,可以不用花費太多的時間來做低版本的相容,很多網站採用給予低版本IE以提示的方式(恩,很友好很人道)給遊客,一般是在header上給一個提示,指令碼檢測如下:function getIEVersion(){ var rv = -1; // Return value assumes failure. if(navigator.appName == 'Microsoft
Time of Update: 2017-01-19
Array類型是ECMAScript中最常用的參考型別。ECMAScript中的資料與其它大多數語言中的數組有著相當大的區別。雖然ECMAScript中的資料與其它語言中的數組一樣都是資料的有序列表,但不同的是,ECMAScript數組中的每一項可以儲存任何類型的資料,無論是數值、字串或者是對象。同時,ECMAScript中的數組大小是可以動態調整的,即可以根據資料的添加自動成長以容納新增的資料。下面總結一下JavaScript中數組常用的操作函數及用法。•建立數組建立數組主要有建構
Time of Update: 2017-01-19
現在有一個需求如下圖:產品經理說Card Number只能讓輸入數字(中間的空格是格式自加的,也是用js實現的),有時候我腦海中出現了個聲音,啥玩意,加個type=number不就行了,事實發現圖樣圖森破了,先不說type=number後面會有個上下標(雖然用css可幹掉),但是這個類型是支援科學IME的,就是小數點和e這樣的是可以輸入的,於是乎只能用其他的方式了,後來想用檢索到輸入了非數字就幹掉,但是這樣還是能輸入,想法被打回,於是乎最終採用了鍵盤輸入控制的辦法,其實很簡單,代碼如下: