提升(Hoisting)JavaScript將聲明移動到頂部的默認行為。
創新互聯公司是專業的柳河網站建設公司,柳河接單;提供做網站、成都做網站,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行柳河網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!
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聲明常量不會被提升!??值得學習let和const
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如果未聲明變量,則不允許使用變量。
當前名稱:什么是JavaScript變量提升,面試經常問
URL標題:http://vcdvsql.cn/article38/pccipp.html
成都網站建設公司_創新互聯,為您提供Google、網站收錄、企業網站制作、品牌網站制作、虛擬主機、自適應網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯