什麼是JavaScript變數提升?這是面試常會被問到的。以下這篇文章就來跟大家介紹一下JavaScript變數提升,有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
JavaScript變數提升
#(Hoisting)JavaScript將宣告移動到頂部的預設行為。 【相關課程推薦: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解釋程式碼的方式,因此它總是一個很好的規則。 本文來自js教學 欄目,歡迎學習!
以上是面試常問之JavaScript變數提升的詳細內容。更多資訊請關注PHP中文網其他相關文章!