如何調(diào)試JavaScript代碼

今天就跟大家聊聊有關(guān)如何調(diào)試JavaScript代碼,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)建站專注于企業(yè)營(yíng)銷型網(wǎng)站、網(wǎng)站重做改版、梓潼網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作、成都商城網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為梓潼等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

1 把消息記錄到控制臺(tái)

IE8、Firefox、Chrome 和 Safari 中可以使用 console 對(duì)象向 JavaScript 控制臺(tái)寫(xiě)入消息,它有這些方法:

  • error(message):錯(cuò)誤性消息。

  • info(message):信息性消息。

  • log(message):一般性消息。

  • warn(message):警告性消息。

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

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

/**
 * 跨瀏覽器,向控制臺(tái)寫(xiě)入消息
 * @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);
  }
}

可以在瀏覽器中安全地使用這個(gè)函數(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ā)布之前,務(wù)必移除所有的消息。這可以在部署之前,通過(guò)編寫(xiě)特定的代碼步驟,實(shí)現(xiàn)自動(dòng)清理。不要使用 alert(),因?yàn)閺棾龅木婵驎?huì)阻止程序的執(zhí)行;而且在測(cè)試異步操作對(duì)時(shí)間的影響時(shí),使用警告框也會(huì)影響測(cè)試結(jié)果。

2 把消息記錄到當(dāng)前頁(yè)面

可以在頁(yè)面中開(kāi)辟出一小塊區(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>";
}

這種技術(shù)在不支持 JavaScript 控制臺(tái)的 IE7 以及早期版本中,特別有用。

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

3 拋出錯(cuò)誤

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

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

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

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

這個(gè)錯(cuò)誤消息包含了函數(shù)的名稱以及導(dǎo)致錯(cuò)誤的真正原因,所以如果拋出了這個(gè)錯(cuò)誤,我們就能立即知道錯(cuò)誤的來(lái)源以及問(wèn)題的性質(zhì)。

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

<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可以做什么

1.可以使網(wǎng)頁(yè)具有交互性,例如響應(yīng)用戶點(diǎn)擊,給用戶提供更好的體驗(yàn)。 2.可以處理表單,檢驗(yàn)用戶的輸入,并提供及時(shí)反饋節(jié)省用戶時(shí)間。 3.可以根據(jù)用戶的操作,動(dòng)態(tài)的創(chuàng)建頁(yè)面。 4使用JavaScript可以通過(guò)設(shè)置cookie存儲(chǔ)在瀏覽器上的一些臨時(shí)信息。

看完上述內(nèi)容,你們對(duì)如何調(diào)試JavaScript代碼有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

文章題目:如何調(diào)試JavaScript代碼
分享網(wǎng)址:http://muchs.cn/article2/ihccoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、網(wǎng)站營(yíng)銷關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、定制網(wǎng)站、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)