您好,登錄后才能下訂單哦!
什么是JavaScript變量提升?可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
JavaScript變量提升
提升(Hoisting)JavaScript將聲明移動到頂部的默認行為。
JavaScript聲明提升,在JavaScript中,變量可以在使用后聲明。換一種說法; 變量可以在聲明之前使用。示例1給出與示例2相同的結果:
例子1:
<!DOCTYPE html> <html> <meta charset="utf-8"> <title>js</title> <body> <p id="demo"></p> <script> x = 5; // 給x賦值5 elem = document.getElementById("demo"); // 查找一個元素 elem.innerHTML = x; // 在元素內顯示x var x; // 聲明 x </script> </body> </html>
例子2:
!DOCTYPE html> <html> <meta charset="utf-8"> <title>js</title> <body> <p id="demo"></p> <script> var x; // 聲明 x x = 5; // 把5賦值給x elem = document.getElementById("demo"); elem.innerHTML = x; </script> </body> </html>
要理解這一點,您必須理解“聲明提升(英文:Hoisting)”一詞。 是指JavaScript將所有聲明移動到當前范圍頂部(到當前腳本或當前函數的頂部)的默認行為。
但在ES6 中改變了這個默認的行為,ES6的let聲明的變量和const聲明常量不會被提升!
JavaScript初始化不會提升
JavaScript僅提升聲明,而不是初始化。示例1和示例2是不同的結果:
示例1:
<!DOCTYPE html> <html> <meta charset="utf-8"> <title>js</title> <body> <p id="demo"></p> <script> var x = 5; // 初始化 x var y = 7; // 初始化 y elem = document.getElementById("demo"); // 查找一個元素 elem.innerHTML = x + " " + y; // 顯示x和y </script> </body> </html>
例子2:
<!DOCTYPE html> <html> <meta charset="utf-8"> <title>js</title> <body> <p id="demo"></p> <script> var x = 5; // 初始化 x elem = document.getElementById("demo"); // 查找一個元素 elem.innerHTML = x + " " + y; // 顯示x和y var y = 7; // 初始化 y </script> </body> </html>
在頂部聲明你的變量!
對許多開發人員來說,變量提升(Hoisting)是一種未知或被忽視的JavaScript行為。如果開發人員不理解提升,程序可能包含錯誤(Error)。為避免錯誤,請始終在每個范圍的開頭聲明所有變量。由于這是JavaScript解釋代碼的方式,因此它始終是一個很好的規則。
看完上述內容,你們對JavaScript變量提升有進一步的了解嗎?如果還想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。