Time of Update: 2018-12-08
什麼是單元測試? 單元測試又稱為模組測試,是針對程式模組(軟體設計的最小單位)來進行正確性檢驗的測試工作。單元測試主要是用來檢驗程式的內部邏輯,也稱為個體測試、結構測試或邏輯驅動測試。通常由撰寫程式碼的程式設計師負責進行。 通常來說,程式設計師每修改一次程式就會進行最少一次單元測試,在編寫程式的過程中前後很可能要進行多次單元測試,以證實程式達到軟件規格書(en:Specification)要求的工作目標,沒有臭蟲;雖然單元測試不是什麼必須的,但也不壞,這牽涉到專案管理的政策決定。 ——
Time of Update: 2018-12-08
實現一: 複製代碼 代碼如下:/* 平淡無奇法 */ function pad(num, n) { var i = (num + "").length; while(i++ < n) num = "0" + num; return num; } 上面的代碼太平淡無奇,體現不了我的真實水平。於是有了實現二: 複製代碼 代碼如下:/* 神奇遞迴法 */ function pad2(num, n) { if ((num + "").length >= n) return num;
Time of Update: 2018-12-08
複製代碼 代碼如下:var f1 = function(p1,p2,p3){ switch(arguments.length){ case 0: alert("無參版本的f1") break; case 1: alert("1個參數版本的f1:" + p1) break; case 2: alert("2個參數版本的f1:
Time of Update: 2018-12-08
先看javascript的普通函數用法 複製代碼 代碼如下:function sum(a,b){ var c = 10; function add(){ c++; } add(); return a + b + c; } var d = sum(4,5); alert(d) // 20 可以看出,外部要和函數sum進行互動,只能通過調用和傳回值形式,無法訪問裡面的參數c和內建函式add()。這對於函數來說屬於正常邏輯。 接下來看javascript的類用法 複製代碼 代碼如下:function
Time of Update: 2018-12-08
複製代碼 代碼如下:<script type="text/javascript" src="scripts/json/json2.js"></script> <script type="text/javascript" src="scripts/json/jsonmessage.js"></script> 一、在javascript中使用JSON建立一個對象 Js代碼 複製代碼 代碼如下://建立一個Null 物件 var JSONObject =
Time of Update: 2018-12-08
如果你有編程基礎,學習Javascript是一件很容易的事情,如果你沒有編程基礎,也不要擔心,我們會為你解釋每一行代碼。 複製代碼 代碼如下:<html> <body> <script type=”text/javascript”> document.write(“This is my first javascript”); </script> </body> </html>
Time of Update: 2018-12-08
文章目錄 JavaScript變數匈牙利命名類型 JavaScript變數匈牙利命名法 匈牙利命名法文法: 變數名=類型+對象描述 類型指變數的類型 對象描述指對象名字全稱或名字的一部分,要求有明確含義,命名要容易記憶容易理解。 提示: 雖然JavaScript變數表面上沒有類型,但是JavaScript內部還是會為變數賦予相應的類型。 提示: 匈牙利命名法是一位微軟程式員發明的,多數的C,C++程式都使用此命名法。
Time of Update: 2018-12-08
一般在javascript裡對數組進行遍曆一般是使用for迴圈,像下面一樣 複製代碼 代碼如下:var arr = []; for(var i=0; i<arr.length; i++){ //loop } 這種代碼最大的問題,就在於每次迴圈時都要通過 .操作符擷取 .length,增加了開銷。那麼我們可以這樣改進。 複製代碼 代碼如下:var arr = []; for(var i=0, n=arr.length; i<n; i++){ //loop } 這樣子,先把
Time of Update: 2018-12-08
IE對盒模型的渲染在 Standards Mode和Quirks Mode是有很大差別的,在Standards Mode下對於盒模型的解釋和其他的標準瀏覽器是一樣,但在Quirks Mode模式下則有很大差別,而在不聲明Doctype的情況下,IE預設又是Quirks Mode。所以為相容性考慮,我們可能需要擷取當前的文檔渲染方式。 document.compatMode正好派上用場,它有兩種可能的傳回值:BackCompat和CSS1Compat。
Time of Update: 2018-12-08
錯誤模式:語法錯誤警告 複製代碼 代碼如下:function(){ // insert code here }(); 模式一:函數字面量 (Function Literal) 先聲明函數對象,然後執行。 複製代碼 代碼如下:(function(){ // insert code here })(); 模式二:優先運算式 (Prior Expression) 由於 JavaScript 按照從內到外的順序執行運算式,因此使用括弧來強制執行已聲明的函數。 複製代碼 代碼如下:(function(){
Time of Update: 2018-12-08
回顧一下,IE會把標籤內前面的一些空白kill掉,還會把它裡面標籤統統大寫,會顯示動態添加的屬性,在某些元素中,它還是唯讀。這個由IE發明的東西,最後被爆如此多缺陷,真是令人心寒。不過innerHTML還有一地雷,存在於最標準的Firefox中,看下面代碼: 複製代碼 代碼如下:var newTable = document.createElement('table'); document.body.appendChild(newTable); var newTr =
Time of Update: 2018-12-08
原理基本是這樣,如果傳入的是字串,那麼讓它們變成一個元素節點,不過這元素節點也可以有許多層,在最內層把要包裹的元素放進。把字串變成元素節點的方法有如下幾個。1,createElement,IE可以連元素屬性也一起建立,但只能建立一層。2,innerHTML,不過需要對原來的字串進行處理,IE與FF都有許多意想不到的預設行為,可以為你多加一點東西或少加一點東西。3,createContextualFragment,由於Opera的行為有點怪異,需要選中修改元素的位置。經日本人的測試,它轉換字串成節
Time of Update: 2018-12-08
getElementByTagNames(注意是複數的names)會獲得一些tag的元素,然後按照他們的順序儲存在一個數組中。這非常的有用,比如在上一章的TOCScript中,就需要獲得整個文章裡面的所有的H3和H4。 我非常希望在node原型中加入這個功能,但是在IE和Safari裡面不行。所以只能把他當做一個普通函數。 使用 getElementByTagNames有兩個參數: 1、一個用逗號分隔的tag名稱字串。
Time of Update: 2018-12-08
如果你也想這麼做,那麼你還需要我的getElementByTagNames()函數。複製代碼 代碼如下:function createTOC() { var y = document.createElement('div'); y.id = 'innertoc'; var a = y.appendChild(document.createElement('span')); a.onclick = showhideTOC; a.id =
Time of Update: 2018-12-08
例子 這個頁面就是個例子。點擊一個段落,編輯,然後點Ready。你的修改就會呈現。 問題 遇到的第一個問題是:我想用文字框作為編輯地區。一開始我卻把內容放不進文字框去。讀者發現Mozilla的一個警告說是只有在文字框放置到文檔之後才能設定它的value。 另外,在Mozilla下面內容封裝的不是很好。我試了好幾種wrap參數,但是結果都不是很好。
Time of Update: 2018-12-08
文章目錄 自從建立一個範圍 雖然我們會講解用程式建立範圍對象,但是我們把精力主要集中在如何將使用者的選取範圍轉換成為W3C
Time of Update: 2018-12-08
在我看來,警告框只用在瀏覽器不支援其他顯示錯誤資訊的辦法的時候。W3C建議我們在表單項的附近顯示錯誤資訊。這是一種很好的辦法,所以我們只在瀏覽器不支援這種進階的辦法的時候才使用警告對話方塊。 例子 試試下面的例子。每一項都是必須的。另外我會堅持email項是否有@符號。如果沒有也會提示錯誤資訊。 複製代碼 代碼如下:var W3CDOM = (document.getElementsByTagName && document.createElement);
Time of Update: 2018-12-08
想法 假設你有一個線上的CD評級工具。你希望使用者查看他們喜歡的所有CD。但是你怎麼知道使用者平均會查看多少張呢?你在這個頁面上需要添加多少欄位呢? 在W3CDOM出現之前這確實是一個問題。假設你放置了7張CD。但是使用者很可能只想查看一張,太多可能會嚇著使用者,而有些使用者想查看自己的所有CD,這樣就不得不反覆提交很多次。這確實很煩人。 只有使用W3C DOM才能讓使用者決定產生多少個欄位。這個效果和之前的大不相同。 例子
Time of Update: 2018-12-08
表單一實例 這是一個表單的實力。這裡有一個小問題:因為我的伺服器現在不支援,所以表單不能提交。我會列印出你的輸入,然後返回一個false,這樣表單就沒有被提交。 onSubmit的代碼做了兩件事情:檢查你是否在四個文字框裡面都填寫了資料,然後把所有的元素都串連起來列印在下面的文本地區中。 原文中有執行個體,需要童鞋請移步,我就不搬過來了。 檢測文本地區 這段代碼會檢測使用者是否在文字框內輸入了內容。他會忽略複選框和單選框,但是會總提醒使用者選擇select
Time of Update: 2018-12-08
因為每一個表單的檢測項都不同,所以我也不能給你一個萬能的代碼。你需要用我在這一章介紹的這些元素構建自己的檢測函數。我在後面一張還有一個例子,你也可以參考。在這一章我會首先討論一下用JavaScript來檢測表單的局限性,然後會解釋一下提交時間處理常式,然後是表單本身的一些方法和屬性。最後就是如何訪問表單元素。這裡還有一篇Jeff Howden的介紹表單的使用錯誤和解決辦法。Forms & JavaScript Living Together in Harmony局限性