」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > JavaScript 中的日變數:透過實際範例了解「const」、「let」和「var」。

JavaScript 中的日變數:透過實際範例了解「const」、「let」和「var」。

發佈於2024-11-07
瀏覽:596

Day astering Variables in JavaScript: Understanding `const`, `let`, and `var` with Real-World Examples.

當您使用 JavaScript 時,您首先要學習的事情之一就是如何宣告變數。變數就像是儲存資訊的容器,例如數字、文字甚至複雜資料。在 JavaScript 中,宣告變數有三種方式:const、let 和 var。其中每一個都有自己的規則和最佳實踐,一開始可能會有點令人困惑。在這篇文章中,我們將透過簡單的範例對其進行分解,以幫助您了解何時以及如何使用每個範例。

範例程式碼

我們先來看一段簡單的程式碼:

`javascript
const accountId = 14423;
var accountEmail = "[email protected]";
讓帳號密碼 = "12345";
accountCity = "賈姆謝德布爾";
讓帳戶滾動;

// accountId = 13242; // 不允許 - 將拋出錯誤

console.table([accountEmail, accountId, accountRoll, accountPassword]);
`

理解常量

我們宣告的第一個變數是使用 const 的 accountId。當您想要聲明一個其值永遠不會改變的變數時,可以使用 const 關鍵字。一旦將值指派給 const 變量,就無法將其重新指派給其他變數。例如:

const accountId = 14423;
accountId = 13242; // This will throw an error!

在上面的範例中,嘗試重新指派 accountId 將導致錯誤,因為 const 變數在初始分配後是不可變的。

const要點:

  • 無法重新賦值: 一旦將值賦給 const 變量,就無法更改。
  • 區塊作用域: 變數只能在宣告它的區塊內存取(例如,在 {} 內)。

理解讓

接下來,我們使用 let 宣告 accountPassword。當您想要宣告一個其值稍後可能會變更的變數時,請使用 let 關鍵字。與 const 不同,您可以重新指派 let 變數:

let accountPassword = "12345";
accountPassword = "67890"; // This is perfectly fine!

但是,與 const 一樣,let 也是區塊作用域的,這意味著它只能在聲明它的區塊內存取。

let的重點:

  • 可以重新賦值: let 變數被賦值後可以更改它的值。
  • 區塊作用域: 此變數只能在宣告它的區塊內存取。

理解變數

最後,我們來談談 var,這就是我們聲明 accountEmail 的方式。 var 是 JavaScript 中宣告變數的舊方法。與 let 和 const 相比,它有一些關鍵區別:

var accountEmail = "[email protected]";
var accountEmail = "[email protected]"; // This is allowed!

如您所見,與 let 和 const 不同,您可以在同一範圍內重新聲明 var 變量,而不會出現任何錯誤。這有時會導致錯誤和意外行為,這就是為什麼許多開發人員更喜歡 let 和 const 的原因。

var的要點:

  • 可以重新賦值並重新宣告:您可以變更值,甚至重新宣告 var 變數。
  • 函數作用域: 與區塊作用域的 let 和 const 不同,var 是函數作用域的。這意味著它可以在聲明它的函數內訪問,但不限於區塊。

快速比較

這裡有一個快速比較來總結差異:

{
    var x = 10;
    var x = 20; // Allowed, no error

    let y = 10;
    let y = 20; // Not allowed, will throw a syntax error
}

實際範例:使用console.table

在程式碼結尾,我們使用 console.table 以簡潔的表格格式顯示變數的值:

console.table([accountEmail, accountId, accountRoll, accountPassword]);

這會輸出一個表,其中包含 accountEmail、accountId、accountRoll 和 accountPassword 的目前值。這是在調試或檢查工作時可視化變數的便捷方法。

結論

理解 const、let 和 var 之間的差異對於編寫乾淨、無錯誤的 JavaScript 程式碼至關重要。快速回顧一下:

  • 當您希望變數保持常數時,請使用 const。
  • 當你期望變數的值改變時使用let。
  • 避免 var ,除非您有特定原因使用它(由於其函數範圍的行為)。

透過掌握這三個關鍵字,您將能夠編寫更可靠且可維護的 JavaScript 程式碼。有關更詳細的信息,您可以隨時參考 MDN 文件。

編碼愉快,下一篇見!

版本聲明 本文轉載於:https://dev.to/alwaysaman/day-1-mastering-variables-in-javascript-understanding-const-let-and-var-with-real-world-examples-nlp?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,輸出...
    程式設計 發佈於2025-05-16
  • 如何在Java的全屏獨家模式下處理用戶輸入?
    如何在Java的全屏獨家模式下處理用戶輸入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    程式設計 發佈於2025-05-16
  • 如何在Java中正確顯示“ DD/MM/YYYY HH:MM:SS.SS”格式的當前日期和時間?
    如何在Java中正確顯示“ DD/MM/YYYY HH:MM:SS.SS”格式的當前日期和時間?
    如何在“ dd/mm/yyyy hh:mm:mm:ss.ss”格式“ gormat 解決方案:的,請訪問量很大,並應為procectiquiestate的,並在整個代碼上正確格式不多: java.text.simpledateformat; 導入java.util.calendar; 導入java...
    程式設計 發佈於2025-05-16
  • 您如何在Laravel Blade模板中定義變量?
    您如何在Laravel Blade模板中定義變量?
    在Laravel Blade模板中使用Elegance 在blade模板中如何分配變量對於存儲以後使用的數據至關重要。在使用“ {{}}”分配變量的同時,它可能並不總是最優雅的解決方案。 幸運的是,Blade通過@php Directive提供了更優雅的方法: $ old_section =...
    程式設計 發佈於2025-05-16
  • 將圖片浮動到底部右側並環繞文字的技巧
    將圖片浮動到底部右側並環繞文字的技巧
    在Web設計中圍繞在Web設計中,有時可以將圖像浮動到頁面右下角,從而使文本圍繞它纏繞。這可以在有效地展示圖像的同時創建一個吸引人的視覺效果。 css位置在右下角,使用css float and clear properties: img { 浮點:對; ...
    程式設計 發佈於2025-05-16
  • 如何在JavaScript對像中動態設置鍵?
    如何在JavaScript對像中動態設置鍵?
    在嘗試為JavaScript對象創建動態鍵時,如何使用此Syntax jsObj['key' i] = 'example' 1;不工作。正確的方法採用方括號: jsobj ['key''i] ='example'1; 在JavaScript中,數組是一...
    程式設計 發佈於2025-05-16
  • 切換到MySQLi後CodeIgniter連接MySQL數據庫失敗原因
    切換到MySQLi後CodeIgniter連接MySQL數據庫失敗原因
    無法連接到mySQL數據庫:故障排除錯誤消息要調試問題,建議將以下代碼添加到文件的末尾.//config/database.php並查看輸出: ... ... 迴聲'... echo '<pre>'; print_r($db['default']); echo '</pr...
    程式設計 發佈於2025-05-16
  • 在C#中如何高效重複字符串字符用於縮進?
    在C#中如何高效重複字符串字符用於縮進?
    在基於項目的深度下固定字符串時,重複一個字符串以進行凹痕,很方便有效地有一種有效的方法來返回字符串重複指定的次數的字符串。使用指定的次數。 constructor 這將返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.W...
    程式設計 發佈於2025-05-16
  • Go web應用何時關閉數據庫連接?
    Go web應用何時關閉數據庫連接?
    在GO Web Applications中管理數據庫連接很少,考慮以下簡化的web應用程序代碼:出現的問題:何時應在DB連接上調用Close()方法? ,該特定方案將自動關閉程序時,該程序將在EXITS EXITS EXITS出現時自動關閉。但是,其他考慮因素可能保證手動處理。 選項1:隱式關閉終...
    程式設計 發佈於2025-05-16
  • 如何從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-05-16
  • 在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在JTable中維護jtable單元格渲染後,在JTable中,在JTable中實現自定義單元格渲染和編輯功能可以增強用戶體驗。但是,至關重要的是要確保即使在編輯操作後也保留所需的格式。 在設置用於格式化“價格”列的“價格”列,用戶遇到的數字格式丟失的“價格”列的“價格”之後,問題在設置自定義單元...
    程式設計 發佈於2025-05-16
  • \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    答案: 在大多數現代編譯器中,while(1)和(1)和(;;)之間沒有性能差異。編譯器: perl: 1 輸入 - > 2 2 NextState(Main 2 -E:1)V-> 3 9 Leaveloop VK/2-> A 3 toterloop(next-> 8 last-> 9 ...
    程式設計 發佈於2025-05-16
  • 左連接為何在右表WHERE子句過濾時像內連接?
    左連接為何在右表WHERE子句過濾時像內連接?
    左JOIN CONUNDRUM:WITCHING小時在數據庫Wizard的領域中變成內在的加入很有趣,當將c.foobar條件放置在上面的Where子句中時,據說左聯接似乎會轉換為內部連接。僅當滿足A.Foo和C.Foobar標準時,才會返回結果。 為什麼要變形?關鍵在於其中的子句。當左聯接的右側...
    程式設計 發佈於2025-05-16
  • 在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8表中將latin1字符轉換為utf8 ,您遇到了一個問題,其中含義的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致電。為了解決此問題,您正在嘗試使用“ mb_convert_encoding”和“ iconv”轉換受...
    程式設計 發佈於2025-05-16
  • 如何使用組在MySQL中旋轉數據?
    如何使用組在MySQL中旋轉數據?
    在關係數據庫中使用mySQL組使用mySQL組進行查詢結果,在關係數據庫中使用MySQL組,轉移數據的數據是指重新排列的行和列的重排以增強數據可視化。在這裡,我們面對一個共同的挑戰:使用組的組將數據從基於行的基於列的轉換為基於列。 Let's consider the following ...
    程式設計 發佈於2025-05-16

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

Copyright© 2022 湘ICP备2022001581号-3