国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

JavaScript 變數(shù)提升

JavaScript 中,函數(shù)及變數(shù)的宣告都會(huì)被提升到函數(shù)的最頂端。

JavaScript 中,變數(shù)可以在使用後聲明,也就是變數(shù)可以先使用再聲明。


以下兩個(gè)實(shí)例將得到相同的結(jié)果:

實(shí)例1

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
<p id="demo"></p>
<script>
    x = 5; // 變量 x 設(shè)置為 5
    elem = document.getElementById("demo"); // 查找元素 
    elem.innerHTML = x;                     // 在元素中顯示 x
    var x; // 聲明 x
</script>
</body>
</html>

執(zhí)行程式嘗試


實(shí)例2

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
<p id="demo"></p>
<script>
var x; // 聲明 x
x = 5; // 變量 x 設(shè)置為 5
elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = x; 
</script>
</body>
</html>

執(zhí)行程式嘗試一下

要理解以上實(shí)例就需要理解"hoisting(變數(shù)提升)"。

變數(shù)提升:函數(shù)宣告和變數(shù)宣告總是會(huì)被解釋器悄悄地被"提升"到方法體的最頂端。


JavaScript 初始化不會(huì)提升

#JavaScript 只有宣告的變數(shù)會(huì)提升,並且初始化的不會(huì)。

以下兩個(gè)實(shí)例結(jié)果結(jié)果不相同:

實(shí)例1

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php中文網(wǎng)(php.cn)</title>
</head>
<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>

執(zhí)行程式嘗試

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
<p id="demo"></p>
<script>
var x = 5; // 初始化 x
elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = "x 為:" + x + ",y 為:" + y;           // 顯示 x 和 y
var y = 7; // 初始化 y
</script>
</body>
</html>

執(zhí)行程式嘗試

實(shí)例2 的y 輸出了?undefined,這是因?yàn)樽償?shù)宣告(var y) 提升了,但是初始化(y = 7) 並不會(huì)提升,所以y變數(shù)是一個(gè)未定義的變數(shù)。


提示

#在頭部宣告你的變數(shù)

對(duì)於大多數(shù)程式設(shè)計(jì)師來(lái)說(shuō)並不知道JavaScript 變數(shù)提升。

如果程式設(shè)計(jì)師不能很好的理解變數(shù)提升,他們寫(xiě)的程式就容易出現(xiàn)一些問(wèn)題。

為了避免這些問(wèn)題,通常我們?cè)诿總€(gè)作用域開(kāi)始前聲明這些變量,這也是正常的 JavaScript 解析步驟,易於我們理解。


#
繼續(xù)學(xué)習(xí)
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <p id="demo"></p> <script> x = 5; // 變量 x 設(shè)置為 5 elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = x; // 在元素中顯示 x var x; // 聲明 x </script> </body> </html>
提交重置程式碼