溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript有哪些代碼調(diào)試的方法

發(fā)布時間:2021-08-30 17:58:20 來源:億速云 閱讀:105 作者:chen 欄目:開發(fā)技術

本篇內(nèi)容介紹了“JavaScript有哪些代碼調(diào)試的方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

  JS是解釋型語言,是逐條語句解釋執(zhí)行的,如果錯誤發(fā)生在某個語句塊,此語句塊以前的語句一般都可以正常執(zhí)行。這不同于C等編譯型語言。

  代碼調(diào)試的重點在于找到錯誤發(fā)生點,然后才能有的放矢。

  1.alert()

  通常可以使用警告框來提示變量信息。

  alert(document.body.innerHTML);

  當警告框彈出時,用戶將需要單擊“確定”來繼續(xù)。

  2.html標簽內(nèi)使用document.write()

  < div id="demo"> < script> var arr=[1,2,3,4,5]

  document.write(arr[2] + ' ') //3 < /script>< /div>

  需要注意的是是,以下寫法會替換整個頁面的內(nèi)容:

  即使是函數(shù)調(diào)用也是如此。

  3.innerHTML()

  document.getElementById("demo").innerHTML =""

  JavaScript Array.filter()

  使用通過測試的所有數(shù)組元素創(chuàng)建一個新數(shù)組。

  //45,25

  4.console()

  JS的運行環(huán)境是瀏覽器,由瀏覽器引擎解釋執(zhí)行JS代碼,一般來說,瀏覽器也提供調(diào)試器,如chrome按F12即可調(diào)出高試器。使用F12在瀏覽器(Chrome、IE、Firefox)中激活調(diào)試,然后在調(diào)試器菜單中選擇“控制臺”。

  如果您的瀏覽器支持調(diào)試,那么您可以使用 console.log() 在調(diào)試窗口中顯示 JavaScript 的值:

  內(nèi)置的調(diào)試器可打開或關閉,強制將錯誤報告給用戶。

  通過調(diào)試器,您也可以設置斷點(代碼執(zhí)行被中斷的位置),并在代碼執(zhí)行時檢查變量。

  5.try catch捕獲錯誤

  JavaScript 實際上會創(chuàng)建帶有兩個屬性的 Error 對象:name 和 message。

  name 設置或返回錯誤名。

  message 設置或返回錯誤消息(一條字符串)。

  6.debugger

  debugger停止執(zhí)行 JavaScript,并調(diào)用調(diào)試函數(shù)(如果可用)。

  7.注釋法或增量法

  可以注釋掉一些可疑代碼來確定錯誤發(fā)生點。

  或者考慮逐步增加代碼的方法,逐步驗證,以避免錯誤。

  8.一些常見的 JavaScript 錯誤。

  8.1 意外使用賦值運算符

  如果程序員在 if 語句中意外使用賦值運算符(=)而不是比較運算符(===),JavaScript 程序可能會產(chǎn)生一些無法預料的結果。

  8.2 令人困惑的加法和級聯(lián)

  加法用于加數(shù)值。

  級聯(lián)(Concatenation)用于加字符串。

  在 JavaScript 中,這兩種運算均使用相同的 + 運算符。

  正因如此,將數(shù)字作為數(shù)值相加,與將數(shù)字作為字符串相加,將產(chǎn)生不同的結果:

  var x = 10 + 5; // x 中的結果是 15var x = 10 + "5"; // x 中的結果是 "105"

  而加法以外的其它算法運算符可以將字符串進行自動類型轉換。

  10-"5" // 5

  8.3 令人誤解的浮點數(shù)

  JavaScript 中的數(shù)字均保存為 64 位的浮點數(shù)(Floats),符合IEEE754的標準。

  所有編程語言,包括 JavaScript,都存在處理浮點值的困難:

  var x = 0.1;var y = 0.2;var z = x + y // z=0.30000000000000004

  8.4 錯位的分號

  因為一個錯誤的分號,此代碼塊無論 x 的值如何都會執(zhí)行:

  if (x == 19);{ // code block}

  在一行的結尾自動關閉語句是默認的 JavaScript 行為。

  在 JavaScript 中,用分號來關閉(結束)語句是可選的。

  8.5 對象使用命名索引

  在 JavaScript 中,數(shù)組使用數(shù)字索引。

  在 JavaScript 中,對象使用命名索引。

  如果您使用命名索引,那么在訪問數(shù)組時,JavaScript 會將數(shù)組重新定義為標準對象。

  8.6 Undefined 不是 Null

  Undefined 的類型是 Undefined,Null的類型是Object。

  JavaScript 對象、變量、屬性和方法可以是未定義的。

  此外,空的 JavaScript 對象的值可以為 null。

  在測試非 null 之前,必須先測試未定義:

  if (typeof myObj !== "undefined" && myObj !== null)

  8.7 JS沒有塊作用域(與C語言不同)

  在 ES2015 之前,JavaScript 只有兩種類型的作用域:全局作用域和函數(shù)作用域。

  JavaScript

  JavaScript不會為每個代碼塊創(chuàng)建新的作用域。

  此代碼將顯示 i(10)的值,即使在 for 循環(huán)塊之外:

  ES2015 引入了兩個重要的 JavaScript 新關鍵詞:let 和 const。

  這兩個關鍵字在 JavaScript 中提供了塊作用域(Block Scope)變量(和常量)。

  for (let i = 0; i < 10; i++) { // some code}document.getElementById("demo").innerHTML = i; //不能訪問

“JavaScript有哪些代碼調(diào)試的方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI