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 1
<!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>
Jalankan program dan cuba
Contoh 2< .
Promosi pembolehubah: Perisytiharan fungsi dan perisytiharan pembolehubah sentiasa "dinaikkan pangkat" secara senyap-senyap ke bahagian atas badan kaedah oleh jurubahasa.
Pengamatan JavaScript tidak akan digalakkan
JavaScript sahaja pembolehubah yang diisytiharkan akan dinaikkan pangkat, bukan yang dimulakan. Dua contoh berikut mempunyai hasil yang berbeza:
<!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>
Jalankan program dan cuba <!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 atur cara dan cubaY bagi contoh 2 keluaran tidak ditentukan Ini kerana pengisytiharan pembolehubah (var y) dinaikkan, tetapi permulaan (y = 7) tidak akan ditingkatkan, jadi pembolehubah y ialah pembolehubah tidak ditentukan.
Petua
Isytiharkan pembolehubah anda dalam pengepala JavaScript pengangkatan berubah-ubah 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.