Fungsi
Fungsi pengisytiharan; seperti mengisytiharkan pembolehubah.
Tatabahasa
var c = 1;
Tinggalkan var
Dalam JavaScript, jika anda meninggalkan kata kunci var dan menetapkan nilai secara langsung, maka pembolehubah ini ialah pembolehubah global, walaupun ia ditakrifkan dalam fungsi.
<script type="text/javascript"> function Define() { a = 2; } function Hello() { alert(a); } </script>
Seperti yang ditunjukkan dalam kod, selepas menjalankan fungsi Define(), pembolehubah a diisytiharkan sebagai pembolehubah global. Pembolehubah a boleh dirujuk dalam fungsi Hello().
Contoh yang lebih khusus
Kita semua tahu bahawa kata kunci var dalam JavaScript digunakan untuk mengisytiharkan pembolehubah, tetapi jika anda tidak menggunakan kata kunci ini dan terus menulis nama pembolehubah, dan kemudian menetapkannya kepadanya, JavaScript tidak akan melaporkan ralat, ia akan secara automatik mengisytiharkan pembolehubah. Mungkinkah var dalam JavaScript adalah berlebihan? Jelas sekali tidak!
Sila lihat kod berikut:
str1 = 'Hello JavaScript!'; function fun1() { str1 = 'Hello Java!'; } fun1(); alert(str1); // 弹出 Hello Java!
Seperti yang anda lihat, selepas fungsi fun1 dipanggil, nilai str1 ditukar dalam fungsi.
Ubah suai kod di atas sedikit:
str1 = 'Hello JavaScript!'; function fun1() { var str1 = 'Hello Java!'; } fun1(); alert(str1); // 弹出 Hello JavaScript!
Lihat, nilai str1 tidak diubah oleh fungsi fun1.
Jelas sekali, kata kunci var mempengaruhi skop pembolehubah.
Luar kepada fungsi: Pembolehubah ialah pembolehubah global tanpa mengira sama ada ia diisytiharkan dengan var atau tidak.
Di dalam fungsi: Jika pembolehubah tidak diisytiharkan dengan kata kunci var, ia adalah pembolehubah global Hanya jika ia diisytiharkan dengan kata kunci var, ia adalah pembolehubah tempatan.
Kesimpulan
Untuk mengelakkan potensi risiko, pastikan anda menggunakan kata kunci var untuk mengisytiharkan pembolehubah.