1. 程式人生 > 其它 >JavaScript-臨時性死區(TDC)-解決變數提升造成的冗餘

JavaScript-臨時性死區(TDC)-解決變數提升造成的冗餘

技術標籤:javascript

Date 20201211 By WJB

暫時性死區 ( temporal dead zone ): 變數所在作用域開始到變數宣告的位置 之間的區域 稱為臨時性死區。

在以前文章《JavaScript-var-變數提升》(地址:https://blog.csdn.net/wangjianbo09/article/details/110931338)中談論了變數提升問題,有利有弊。

弊端是造成程式碼用編譯冗餘,如何解決這個問題呢?這篇文章就給出答案。

ES6中提出的臨時性死區(TDC),可以避免變數提升。變數宣告時使用關鍵字 let/const ,就約束了變數宣告位置,編譯時不會提升變數宣告位置。

也就是在TDC中不可以使用變數。

看如下對比程式碼:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>index1</title>
   </head>
   <body>
    <script>
        console.log(a);
        var a ='test';
    </script>
   </body>
</html>

執行結果:

使用var 關鍵字宣告物件,變數在是臨時性死區可以被呼叫。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>index1</title> 
    </head>
    <body>
    <script>
        console.log(a);
        let a ='test';
    </script>
    </body>
</html>

執行結果

編譯時就有報錯通知:變數使用前被使用了。

在C++,c#多種語言中都要求變數必須使用前宣告,語言要求嚴格,但對程式總體質量是有所提升的。