」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼 JavaScript 控制台變數宣告會導致「未定義」?

為什麼 JavaScript 控制台變數宣告會導致「未定義」?

發佈於2024-11-02
瀏覽:848

Why Does JavaScript Console Variable Declaration Result in \

為什麼在控制台的JavaScript 變數宣告會導致「未定義」

使用語法var a; 在JavaScript 控制台中宣告變數時,它列印“未定義”。這種行為可能令人驚訝,並且經常在 Stack Overflow 帖子中解決。然而,這些討論未能完全解釋為什麼會發生這種情況。

控制台的行為是 JavaScript 計算表達式的方式的直接結果。當評估語句 var a; 時,JavaScript 認為它本身就是一個表達式並傳回其結果,這確實是「未定義」。

更令人費解的是為什麼聲明變數時控制台也列印「未定義」具有初始值,例如 var a = 3。令人驚訝的是,如果存在另一個具有「真實」結果的語句,則 JavaScript 中的所有變數宣告語句(var 和 function)都會傳回「未定義」。

例如:

> var a = 3;
undefined

> var a = 3; a = 4;
4

> var a = 3; a = 4; var a = 5; function f() {};
4

此行為根源於 eval 語句,根據 ECMAScript 規範,該語句:

  • 如果被評估程式的完成值為空,則傳回「未定義」。

var a = 4 語句的求值回傳(normal,empty,empty),滿足回傳「undefined」的條件。

但是,eval 也指定如果被評估程式的完成值不為空,則傳回最後一條語句的值。在最後一個範例中,a = 4 是最後一條語句,因此傳回其值 (4)。

總而言之,JavaScript 的控制台對於變數聲明列印“未定義”,因為這些聲明在計算為時會傳回“未定義”表達式。這種行為可能會令人困惑,特別是在為變數分配初始值時,但它源自於 JavaScript 表達式和語句的底層評估機制。

版本聲明 本文轉載於:1729384697如有侵犯,請洽[email protected]刪除
最新教學 更多>
  • 找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
    找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
    如何在mySQL中使用mySql 檢索最大計數,您可能會遇到一個問題,您可能會在嘗試使用以下命令:理解錯誤正確找到由名稱列分組的值的最大計數,請使用以下修改後的查詢: 計數(*)為c 來自EMP1 按名稱組 c desc訂購 限制1 查詢說明 select語句提取名稱列和每個名稱...
    程式設計 發佈於2025-04-15
  • PHP數組追加不改變鍵值方法
    PHP數組追加不改變鍵值方法
    在不更改php 中附加鍵的附加數組中,將一個數組附加到另​​一個數組而不影響其鍵時,當您想要組合數據時,將一個數組附加到另​​一個數組是必不可少的。在PHP中,此任務可用於多個選項,包括Array_Merge。 考慮以下示例: => a [1] => b [2]要實現此目的是使用一個foreach...
    程式設計 發佈於2025-04-15
  • 如何使用Python理解有效地創建字典?
    如何使用Python理解有效地創建字典?
    在python中,詞典綜合提供了一種生成新詞典的簡潔方法。儘管它們與列表綜合相似,但存在一些顯著差異。 與問題所暗示的不同,您無法為鑰匙創建字典理解。您必須明確指定鍵和值。 For example:d = {n: n**2 for n in range(5)}This creates a dict...
    程式設計 發佈於2025-04-15
  • 版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    在時間戳列上使用current_timestamp或MySQL版本中的current_timestamp或在5.6.5 此限制源於遺留實現的關注,這些限制需要對當前的_timestamp功能進行特定的實現。 創建表`foo`( `Productid` int(10)unsigned not ...
    程式設計 發佈於2025-04-15
  • 如何同步迭代並從PHP中的兩個等級陣列打印值?
    如何同步迭代並從PHP中的兩個等級陣列打印值?
    同步的迭代和打印值來自相同大小的兩個數組使用兩個數組相等大小的selectbox時,一個包含country代碼的數組,另一個包含鄉村代碼,另一個包含其相應名稱的數組,可能會因不當提供了exply for for for the uncore for the forsion for for ytry...
    程式設計 發佈於2025-04-15
  • JTextField如何僅限整數輸入?
    JTextField如何僅限整數輸入?
    將jtextfield輸入限製到integers 將用戶輸入限制為jtextfield控件中的正整數是編程中的一個常見問題。 While you have attempted to utilize a KeyListener for this purpose, there's a more...
    程式設計 發佈於2025-04-15
  • 在GO中構造SQL查詢時,如何安全地加入文本和值?
    在GO中構造SQL查詢時,如何安全地加入文本和值?
    在go中構造文本sql查詢時,在go sql queries 中,在使用conting and contement和contement consem per時,尤其是在使用integer per當per當per時,per per per當per. [&​​&&&&&&&&&&&&&&&默元組方法在...
    程式設計 發佈於2025-04-15
  • jQuery .each()反向遍曆元素方法
    jQuery .each()反向遍曆元素方法
    在需要以dom的反向順序以jquery的default .EAVERALT .EAVEALT()函數的情況下以反向順序段落元素的情況下,用jquery的.eeph(&& && && && && &&&華)向後迭代元素。考慮以下html:選擇所有li元素並迭代它們,我們可以使用以下方法:將結果轉換為...
    程式設計 發佈於2025-04-15
  • 在PHP中如何高效檢測空數組?
    在PHP中如何高效檢測空數組?
    在PHP 中檢查一個空數組可以通過各種方法在PHP中確定一個空數組。如果需要驗證任何數組元素的存在,則PHP的鬆散鍵入允許對數組本身進行直接評估:一種更嚴格的方法涉及使用count()函數: if(count(count($ playerList)=== 0){ //列表為空。 } 對...
    程式設計 發佈於2025-04-15
  • 如何使用不同數量列的聯合數據庫表?
    如何使用不同數量列的聯合數據庫表?
    合併列數不同的表 當嘗試合併列數不同的數據庫表時,可能會遇到挑戰。一種直接的方法是在列數較少的表中,為缺失的列追加空值。 例如,考慮兩個表,表 A 和表 B,其中表 A 的列數多於表 B。為了合併這些表,同時處理表 B 中缺失的列,請按照以下步驟操作: 確定表 B 中缺失的列,並將它們添加到表的...
    程式設計 發佈於2025-04-15
  • 切換到MySQLi後CodeIgniter連接MySQL數據庫失敗原因
    切換到MySQLi後CodeIgniter連接MySQL數據庫失敗原因
    無法連接到mySQL數據庫:故障排除錯誤消息要調試問題,建議將以下代碼添加到文件的末尾.//config/database.php並查看輸出: ... ... 迴聲'... echo '<pre>'; print_r($db['default']); echo '</pr...
    程式設計 發佈於2025-04-15
  • 用Laravel和Stream輕鬆搭建社交網絡
    用Laravel和Stream輕鬆搭建社交網絡
    本文構建了有關使用流中的Laravel應用程序中添加“關注”功能的先前教程。 本部分著重於配置用於活動跟踪的模型,探索流的提要類型,檢索feed並在視圖中渲染。 [2 [2 stream laravel的 feedmanager 簡化了feed操作,提供了預構建的feeds(用戶,新聞,通知)。...
    程式設計 發佈於2025-04-15
  • 如何從Google API中檢索最新的jQuery庫?
    如何從Google API中檢索最新的jQuery庫?
    從Google APIS 問題中提供的jQuery URL是版本1.2.6。對於檢索最新版本,以前有一種使用特定版本編號的替代方法,它是使用以下語法:獲取最新版本:未壓縮)While these legacy URLs still remain in use, it is recommended ...
    程式設計 發佈於2025-04-15
  • 如何在其容器中為DIV創建平滑的左右CSS動畫?
    如何在其容器中為DIV創建平滑的左右CSS動畫?
    通用CSS動畫,用於左右運動 ,我們將探索創建一個通用的CSS動畫,以向左和右移動DIV,從而到達其容器的邊緣。該動畫可以應用於具有絕對定位的任何div,無論其未知長度如何。 問題:使用左直接導致瞬時消失 更加流暢的解決方案:混合轉換和左 [並實現平穩的,線性的運動,我們介紹了線性的轉換。...
    程式設計 發佈於2025-04-15
  • 在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    mysql-python安裝錯誤:“ mysql_config找不到”“ 由於缺少MySQL開發庫而出現此錯誤。解決此問題,建議在Ubuntu上使用該分發的存儲庫。使用以下命令安裝Python-MysqldB: sudo apt-get安裝python-mysqldb sudo pip in...
    程式設計 發佈於2025-04-15

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3