首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript 斷點調試時 for 循環變量顯示 undefined 的原因

     編輯:程式設計綜合問答

現象

在 for 循環 for (var i = 0; i < 10; i++) 的第一行斷點處,控制台顯示 i 為 undefined。

原因

JavaScript 引擎在執行到該行前,尚未執行 var i = 0 初始化語句。斷點暫停時,變量聲明已提升(Hoisting)但賦值未執行,故值為 undefined。

驗證方法

  1. 讓循環執行一次(Step Over 進入循環體)。
  2. 再次檢查 i,此時顯示 1(已執行 i++)。

補充說明

  • 若使用 let 或 const(ES6),存在暫時性死區(TDZ),在聲明前訪問會直接拋出 ReferenceError,而非 undefined。
  • 這屬於調試器行為,不影響代碼正常運行。

調試截圖

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved