Time of Update: 2014-04-10
一個JSON資料類型的字付串,然後在JavaScript指令碼中用eval()函數改變成JSON對象,就可以直接存取了。感覺這樣比較方便,也更靈活一點。要注意的是要在返回的字串兩端加一對小括弧: var json1 = web_TreeView_TreeDemo.GetJson().value;json1 = eval('(' + json1 + ')'); function showJSON() { var user =
Time of Update: 2014-04-10
關於類型 什麼叫做類型?簡單地說,類型就是把記憶體中的一個二進位序列賦予某種意義。比如,二進位序列0100 0000 0111 0000 0001 0101 0100 1011 1100 0110 1010 0111 1110 1111 1001 1110如果看作是64位不帶正負號的整數類型就是4643234631018606494 而按照IEEE 754規定的浮點數二進位表示規則(見附1)雙精確度浮點類型則是257.331。
Time of Update: 2014-04-10
編程的陷阱(gotcha)是指電腦系統中的意想不到的文檔特徵而不是bug。這些陷阱使得初學者遠離javascript編程。在我看來,因為所有的瀏覽器都能運行javascript使得它是使用最廣泛的語言之一,但它也是最少人研究的。讓我們從一個基礎的樣本開始。 浮點運算 這可能是挫敗一些對javascript不熟悉並準備執行一些數學運算的人的主要原因。 <script>alert(0.02 / 0.1); //0.19999999999999998alert(1.14 *
Time of Update: 2014-04-10
Javascript本身並不支援物件導向,它沒有存取控制符,它沒有定義類的關鍵字class,它沒有支援繼承的extend或冒號,它也沒有用來支援虛函數的virtual,不過,Javascript是一門靈活的語言,下面我們就看看沒有關鍵字class的Javascript如何?類定義,並建立對象。提起物件導向我們就能想到類,對象,封裝,繼承,多態。在《javaScript進階程式設計》這本書中描述的還算比較詳細。我們看看JavaScript中定義類的各種方法。 構造方法 function
Time of Update: 2014-04-10
作為一個程式員, 你可能早已經習慣於物件導向語言中指代當前對象的引用(或者指標), 如的c++中的this或者 python 中的self,當然具有OO屬性( javascript 其實更多的是一種所謂的函數式語言)的 javascript 同樣, 它也具有引用當前屬性的對象的指標(或者引用), 也就是this關鍵字。 為了理解this關鍵字,如果你只想記住一句話,那應該是 this關鍵字總是指向當前函數的所有者對象(執行空間), 至於這句話如何理解, 可以參見下面的詳細說明。
Time of Update: 2014-04-10
之前寫過過一篇關於 Replace()函數的使用的文章,並用它實現了搜尋索引鍵高亮的效果。但沒有很具體地介紹這個函數,這裡補全一下。 replace() 方法的參數 replacement 可以是函數而不是字串。在這種情況下,每個匹配都調用該函數,它返回的字串將作為替換文本使用。該函數的第一個參數是匹配模式的字串。接下來的參數是與模式中的子運算式匹配的字串,可以有 0 個或多個這樣的參數。接下來的參數是一個整數,聲明了匹配在 stringObject 中出現的位置。最後一個參數是
Time of Update: 2014-04-10
基本顯示、隱藏: function hide(el){ el.style.display = "none";}function show(){ el.style.display = "block";} 位置變化:同 setTimeout 或者 setInterval 動態改變元素的位置。 實現方法一: /*opt = {X:500,Y:400,duration:2000}*/function aini(el,opt){var duration =
Time of Update: 2014-04-10
轉換為布爾型 用兩次非運算(!): !!5 ==> true 用布爾型的建構函式: new Boolean(5) == > true 值轉換為布爾類型為false:0,+0,-0,NaN,""(Null 字元串),undefined,null 除上面的值其他值在轉換以後為true,需要特別提到的是:"0",new Object(),function(){} 轉換為字串類型 加上Null 字元串"": 123 + "" =
Time of Update: 2014-04-10
URL即統一資源定位器 (Uniform Resource Locator, URL),完整的URL由這幾個部分構成: scheme://host:port/path?query#fragment scheme:通訊協定,常用的http,ftp,maito等。 host:主機,伺服器(電腦)網域名稱系統 (DNS) 主機名稱或 IP 位址。
Time of Update: 2014-04-10
JavaScript語言是動態類型的語言,基於對象並由事件驅動。用物件導向的思想來看,它也有類的概念。JavaScript 沒有class關鍵字,就是用function來實現。1. 實現方式及變數/方法訪問域控制function fruit(name, color){// public variablethis.name = name;this.color = color;}用this來標識變數或方法是public。var apple = new fruit('apple',
Time of Update: 2014-04-10
push() 方法可向數組的末尾添加一個或多個元素,並返回新的長度。傳回值為把指定的值添加到數組後的新長度。 文法:arrayObject.push(newelement1,newelement2,....,newelementX) 參數newelement1,必需。要添加到數組的第一個元素。 參數newelement2,可選。要添加到數組的第二個元素。
Time of Update: 2014-04-10
說到拖拽功能,現在各大,中,小型網站都基本上有類似的東西,特別是對彈出層拖拽,更是常見的一塌糊塗。。。 其實對於彈出層而言,拖拽最初的目的很單純,就是為了通過拉開層,使被彈出層擋住的內容可見,(當然,後來關於拖拽的功能不斷被最佳化,使得拖拽的應用有了別的意義,最典型的如igoogle的自訂首頁,通過拖放的形式滿足使用者自訂想要的內容模組順序和位置)。 本文討論的重點不是iGoogle的拖放效果,那屬於進階篇,本文是拖拽的“第一階”,如題,實現最簡單的拖拽。
Time of Update: 2014-04-10
今天遇到一個問題,網站在IE 6下面開啟會提示:Internet Explorer無法開啟網站XXX。已終止操作。 先介紹一下網上常見的解決方案。 因為在頁面還沒有ready的時候就調用了htmlObject的appendChild或者innerHTML操作,這樣會在IE上彈出一個對話方塊:"Internet Explorer無法開啟網站XXX,已終止操作"。 解決辦法大概為以下兩點: 1.
Time of Update: 2014-04-10
在 PHP + MySQL (日期類型為datetime) + ajax 應用中,有時候需要用 JavaScript 將時間戳記類型格式化為一般的時間類型格式。下面提供一些轉換的方法,比較常見的一些總結。先定義時間戳記與其Date格式日期var day1 = parseInt(new Date().valueOf()/1000);var day2 = new Date(day1 * 1000);下面是從時間戳記獲得日期的封裝方法,與day2方式差不多:function getLocalTime(
Time of Update: 2014-04-10
Javascript中會經常用到setTimeout來延遲一個函數的執行,如: setTimeout(function(){alert("Hello World");},1000); 會在執行到這句話後延遲1秒鐘來彈出alert視窗。 那麼再看這一段: function test(){setTimeout(function() {alert(1)}, 0);alert(2);}test();
Time of Update: 2014-04-10
本篇開始將回顧下Javascript的事件機制。同時會從一個最小的函數開始寫到最後一個具有完整功能的,強大的事件模組。為敘述方便將響應函數/回呼函數/事件Listener/事件handler都稱為事件handler。 先看看頁面中添加事件的幾種方式:直接將JS代碼寫在HTML上測試:Nowamagic<div onclick="alert('歡迎訪問Nowamagic.net');">Nowamagic</div>HTML
Time of Update: 2014-04-10
行拖動的實現思路非常簡單,選中一行,往上拖就與上面的行交換位置,往下拖就與下面的行交換位置。問題是如何得到交換行。我見過一個非常詳細的教程,它會把表格裡的每一行的高度與Y座標計算出來,換言之,都時是比較e.pageX是否在[rowTop,rowBottom]區間之內。但這也帶來第二個問題,有多少行就有多個這樣的區間。於是解法就變成取事件來源對象,然後再往上取其父物件,如果其父物件是TR元素,就取其[rowTop,rowBottom]區間....思路非常直接,同時也客觀做出一個限制——不能使用代理
Time of Update: 2014-04-10
JavaScript語言是一門優秀的指令碼語言。其中包含指令碼語言的靈活性外還擁有許多進階語言的特性。例如充許構建和執行個體化一個對象,記憶體回收機制(GC:Garbage Collecation)。通常我們使用new建立對象,GC負責回收對象佔用記憶體地區。因此瞭解GC,可以加深對javascript記憶體回收機制的理解。 GC在回收記憶體時,首先會判斷該對象是否被其它對象引用。在確定沒有其它對象引用便釋放該對象記憶體地區。因此如何確定對象不再被引用是GC的關鍵所在。
Time of Update: 2014-04-10
被人問起一個問題:<script language = "JavaScript"><script type="text/javascript"><script>這三個標籤的使用有什麼區別?雖然一直在用,卻也沒有好好去弄清楚,這裡詳細說明一下。查閱一些資料,主要是瀏覽器支援問題。type 和 language 屬性都可用來指定 <script> 標籤中的指令碼的類型。language 屬性在 HTML 和 XHTML 標準中受到了非議,這兩個標準提倡使用 type
Time of Update: 2014-04-10
我們很容易被漂亮的代碼吸引,也不知不覺的在自己的程式碼程式庫中加入這些。卻沒有冷靜的想過它們的優劣。這不,我就收集了一系列形如 "是否為……?" 的判斷的boolean函數。isNull: function(a){return a === null;},isUndefined: function(a){return a === undefined;},isNumber: function(a){return typeof a === 'number';},isString: