變數的作用域指的是程式中可以存取該變數的區域。理解變數作用域對於編寫高效能、無錯誤的程式碼至關重要。
JavaScript 中存在三種類型的變數作用域:
var
let
const
var
關鍵字var
關鍵字最早於 1995 年隨 JavaScript 的首次發布而引入。 var
宣告的變數具有全域作用域,這表示程式的任何部分都可以存取該變數。 <code class="language-javascript">var x = 10; function inner() { console.log(x); // 输出:10 } console.log(x); // 输出:10</code>
var
宣告的變數會被提升到檔案頂端。這意味著可以在變數初始化之前嘗試存取它,但輸出結果將是 undefined
,因為我們尚未為變數賦值。 <code class="language-javascript">console.log(x); // 输出:undefined var x = 10; console.log(x); // 输出:10</code>
let
關鍵字let
關鍵字於 2015 年隨 ECMAScript 6 的引入而出現,它提供了區塊級作用域的功能。 let
初始化的變數具有區塊級作用域。因此,在其他作用域(例如函數或全域作用域)中無法存取該變數。 var
不同,在聲明之前存取使用 let
聲明的變數會引發錯誤,這是由於暫時性死區 (TDZ) 造成的。 <code class="language-javascript">console.log(x); // 输出:引发错误 let x = 10;</code>
<code class="language-javascript">let x = 10; function inner() { console.log(x); // 输出:引发错误 }</code>
const
關鍵字const
宣告的變數必須在同一行初始化。 <code class="language-javascript">const PI = 3.14; console.log(PI); // 输出:3.14</code>
const
宣告的變數的值,則會在執行時引發 TypeError: Assignment to constant variable
錯誤。 <code class="language-javascript">const PI = 3.14; PI = 3.5; // 输出:TypeError: Assignment to constant variable.</code>
祝您程式愉快!
以上是var、let、const 的範圍的詳細內容。更多資訊請關注PHP中文網其他相關文章!