Pengangkat pembolehubah JavaScript



Dalam JavaScript, fungsi dan pengisytiharan berubah akan dinaikkan pangkat ke bahagian atas fungsi.

Dalam JavaScript, pembolehubah boleh diisytiharkan selepas digunakan, iaitu pembolehubah boleh digunakan dahulu dan kemudian diisytiharkan.

Dua kejadian berikut akan mencapai hasil yang sama:

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<p id="demo"></p>
<script>
x = 5; // 变量 x 设置为 5
elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = x;                     // 在元素中显示 x
var x; // 声明 x
</script>

</body>
</html>

Running Instance»

Klik butang "Jalankan Instance" untuk melihat contoh dalam talian

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<p id="demo"></p>
<script>
var x; // 声明 x
x = 5; // 变量 x 设置为 5
elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = x; 
</script>

</body>
</html>

Run Instance»

Klik butang "Jalankan contoh" untuk melihat contoh dalam talian

Untuk memahami contoh di atas, anda perlu memahami "pengangkatan (pembolehubah angkat)".

Promosi pembolehubah: Perisytiharan fungsi dan perisytiharan pembolehubah sentiasa "dinaikkan pangkat" secara senyap-senyap ke bahagian atas badan kaedah oleh jurubahasa.


Pengamatan JavaScript tidak akan dipromosikan

JavaScript hanya akan mempromosikan pembolehubah yang diisytiharkan, bukan yang dimulakan.

Dua kejadian berikut mempunyai hasil yang berbeza:

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(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>

Jalankan instance»

Klik butang "Jalankan Instance" untuk melihat contoh dalam talian


Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(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>

Jalankan Contoh»

Klik butang "Jalankan Contoh" untuk melihat tika dalam talian

Y bagi contoh 2 keluaran tidak ditentukan Ini kerana pengisytiharan pembolehubah (. var y) dipromosikan tetapi permulaan (y = 7) tidak menggalakkan, jadi pembolehubah y ialah pembolehubah tidak ditentukan.

Contoh 2 Kod seperti ini:

var x = 5; // 初始化 x
var y;     // 声明 y

elem = document.getElementById("demo"); // 查找元素
elem.innerHTML = x + " " + y;           // 显示 x 和 y

y = 7;    // 设置 y 为 7

Isytiharkan pembolehubah anda dalam pengepala

Pengangkat pembolehubah JavaScript tidak diketahui oleh kebanyakan pengaturcara.

Jika pengaturcara tidak memahami promosi pembolehubah dengan baik, program yang mereka tulis terdedah kepada masalah.

Untuk mengelakkan masalah ini, kami biasanya mengisytiharkan pembolehubah ini sebelum permulaan setiap skop Ini juga merupakan langkah penghuraian JavaScript biasa dan mudah untuk kami fahami.

NoteMod ketat JavaScript tidak membenarkan penggunaan pembolehubah yang tidak diisytiharkan.
NoteJavaScript 严格模式(strict mode)不允许使用未声明的变量。
在下一个章节中我们将会学习到 "严格模式(strict mode)"
Dalam bab seterusnya kita akan belajar tentang

"mod ketat"
.

<🎜><🎜>