<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # TypeScript 變量 – `var`,`let`和`const` > 原文: [https://howtodoinjava.com/typescript/var-let-const/](https://howtodoinjava.com/typescript/var-let-const/) 在原始 JavaScript 中,變量是使用“`var`”關鍵字聲明的。 現在,在 ES6 中,您還可以使用`let`和`const`關鍵字定義變量。 這三個關鍵字都具有用于變量聲明和初始化的標準語法,但是它們的范圍和用法不同。 讓我們了解這三個關鍵字之間的區別。 ## `var`關鍵字 關鍵字`var`具有傳統的變量定義語法。 (可選)您可以使用值初始化變量。 如果您沒有在`var`語句中初始化變量,則會自動為其分配 JavaScript 值`undefined`。 ```java var value ; //value is 'undefined' var data = 100; //initialized with number 100 var blogName = 'howtodoinjava.com'; //initialized with string value ``` #### 1)范圍 * 用`var`關鍵字聲明的變量具有**函數范圍**(即聲明它們的函數內部的全局范圍); 這意味著它們可以被共享同一作用域的任何函數訪問。 ```java function fun() { var dataX = 10; //Globally available inside function fun() if(true) { var dataY = 20; //Globally available inside function fun() console.log(dataX); //Output 10 console.log(dataY); //Output 20 } console.log(dataX); //Output 10 console.log(dataY); //Output 20 } fun(); console.log(dataX); //Not available outside function; dataX is undefined console.log(dataY); //Not available outside function; dataY is undefined ``` * 可以在聲明或初始化變量之前使用它們。 在這種情況下,它們的值為`undefined`,但不會出現任何運行時錯誤。 ```java function fun() { console.log(dataX); //Output 'undefined' var dataX = 10; } fun(); ``` #### 2)`var`聲明的提升 請注意,用`var`關鍵字聲明的變量將被提升。 提升意味著,如果我們在函數末尾聲明一個變量(已聲明但未初始化),則運行時會將其提升到頂部,并且如果在聲明之前使用該變量,則不會有任何錯誤。 > 閱讀更多: [JavaScript 提升](https://howtodoinjava.com/typescript/javascript-variable-hoisting/) #### 3)如果您不使用“`var`”關鍵字 在 JavaScript 中,如果不使用`var`關鍵字進行變量聲明(*隱式聲明*),則會在全局范圍內創建變量。 例如: ```java for(index=0; index< array.length; index++){ //index is in global scope //code } ``` 在`for`循環上方,將在全局范圍內創建一個名為`index`的變量。 如果其他人碰巧也在使用全局`index`變量,那么您剛剛覆蓋了他們的變量。 為避免賦予變量全局范圍,必須在變量聲明中使用`var`關鍵字。 ## `let`關鍵字 `let`關鍵字與`var`關鍵字非常相似 – 范圍界定上有更多限制。 1. 當“作用域必須限制在聲明它的塊中”時,使用“`let`”語句聲明一個變量。 ```java function fun() { let dataX = 10; if(true) { let dataY = 20; console.log(dataX); //Output 10 console.log(dataY); //Output 20 } console.log(dataX); //Output 10 console.log(dataY); //dataY is 'undefined' } fun(); ``` 參見上面突出顯示的行。 如果您使用了“`var`”關鍵字,則由于`dataY`在函數中具有全局作用域,因此該名稱已經可用。 由于`let`關鍵字,`dataY`在`if`塊之外不可見。 2. 使用`let`聲明的變量不能在聲明之前使用,否則將導致錯誤。 ```java function fun() { console.log(x); //Output 'undefined' console.log(y); //Error - "Uncaught ReferenceError: y is not defined" var x = 10; let y = 11; } fun(); ``` ## `const`關鍵字 1. `const`聲明一個具有常量值的塊范圍變量。 它基本上是帶有“`var`”關鍵字的變量聲明,其中變量值是常量,不能更改。 2. `const`遵循與`let`關鍵字相同的作用域原則。 3. 如果您知道所聲明的變量不能且不應被允許重新分配,則使用`const`對其進行聲明,否則請使用`let`關鍵字。 #### 語法和用法 ```java const PI = "3.14"; PI = 12; //Uncaught TypeError: Assignment to constant variable. ``` 將我的問題放在評論部分。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看