国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

JavaScript代碼調試方法實例小結

2024-05-06 16:47:35
字體:
來源:轉載
供稿:網(wǎng)友

本文實例講述了JavaScript代碼調試方法。分享給大家供大家參考,具體如下:

1 把消息記錄到控制臺

IE8、Firefox、Chrome 和 Safari 中可以使用 console 對象向 JavaScript 控制臺寫入消息,它有這些方法:

  • error(message):錯誤性消息。
  • info(message):信息性消息。
  • log(message):一般性消息。
  • warn(message):警告性消息。

Opera 10.5 之前的版本,是使用 opera.postError() 方法把消息寫入控制臺的。

可以使用下面的這個函數(shù)作為統(tǒng)一寫入控制臺的接口:

/** * 跨瀏覽器,向控制臺寫入消息 * @param message */function log(message) {  if (typeof console == "object") {    console.log(message);  } else if (typeof opera == "object") {    opera.postError(message);  } else if (typeof java == "object" && typeof java.lang == "object") {    java.lang.System.out.println(message);  }}

可以在瀏覽器中安全地使用這個函數(shù):

function sum(num1, num2) {  log("Entering sum(), arguments are " + num1 + "," + num2);  log("Before calculation");  var result = num1 + num2;  log("After calculation");  log("Exiting sum()");  return result;}

注意:在發(fā)布之前,務必移除所有的消息。這可以在部署之前,通過編寫特定的代碼步驟,實現(xiàn)自動清理。不要使用 alert(),因為彈出的警告框會阻止程序的執(zhí)行;而且在測試異步操作對時間的影響時,使用警告框也會影響測試結果。

2 把消息記錄到當前頁面

可以在頁面中開辟出一小塊區(qū)域,用于顯示消息:

function log(message) {  var console = document.getElementById("debuginfo");  if (console == null) {    console = document.createElement("div");    console.id = "debuginfo";    console.style.background = "#dedede";    console.style.border = "1px solid silver";    console.style.padding = "5px";    console.style.width = "400px";    console.style.position = "absolute";    console.style.right = "0px";    console.style.top = "0px";    document.body.appendChild(console);  }  console.innerHTML += "<p>" + message + "</p>";}

這種技術在不支持 JavaScript 控制臺的 IE7 以及早期版本中,特別有用。

注意:在發(fā)布之前,也要移除把錯誤消息輸出到頁面中的代碼。

3 拋出錯誤

如果錯誤消息很具體,那么就可以直接把它當做確定錯誤來源的依據(jù),比如下面的這個函數(shù):

function divide(num1, num2){  return num1/num2;}

這個函數(shù)如果其中的一個參數(shù)不是數(shù)值,那么就會返回 NaN。所以可以在計算前先進行檢測:

function divide(num1, num2){  if(typeof num1 !="number" || typeof num2 !="number"){    throw new Error("divide(): 兩個參數(shù)都必須是數(shù)值")  }  return num1/num2;}

這個錯誤消息包含了函數(shù)的名稱以及導致錯誤的真正原因,所以如果拋出了這個錯誤,我們就能立即知道錯誤的來源以及問題的性質。

大型的應用程序,可以使用下面的這個 assert() 函數(shù)拋出自定義錯誤:

<script type="text/javascript">  function assert(condition, message) {    if (!condition) {      throw new Error(message);    }  }  function divide(num1, num2) {    assert(typeof num1 == "number" && typeof num2 == "number", "divide():Both arguments must be numbers.");    return num1 / num2;  }  divide(1,"tt");</script>

 

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 鹿邑县| 盐山县| 长宁县| 克拉玛依市| 三河市| 紫金县| 安化县| 贡山| 吉木萨尔县| 星子县| 南和县| 饶河县| 米泉市| 新干县| 亚东县| 塘沽区| 江西省| 蒙城县| 正定县| 华宁县| 华宁县| 门源| 禄劝| 宁国市| 英德市| 双城市| 渝中区| 汉阴县| 张家港市| 延吉市| 延庆县| 文登市| 平舆县| 凌云县| 聂拉木县| 呼伦贝尔市| 内江市| 林口县| 界首市| 建昌县| 奉化市|