Berbanding dengan C/C, gelung for dalam ECMAScript tidak boleh mencipta konteks setempat.
alert(k); // Walaupun gelung telah tamat, pembolehubah k masih dalam skop semasa
Pada bila-bila masa, pembolehubah hanya boleh diisytiharkan dengan menggunakan kata kunci var.
Pernyataan tugasan di atas:
a = 10;
Ini hanya mencipta sifat baharu pada objek global (tetapi ia bukan pembolehubah). "Bukan pembolehubah" tidak bermakna ia tidak boleh diubah, tetapi ia tidak mematuhi konsep pembolehubah dalam spesifikasi ECMAScript, jadi ia "bukan pembolehubah" (sebab mengapa ia boleh menjadi hak milik objek global adalah sepenuhnya kerana terdapat global dalam Objek JavaScript, operasi ini bukan untuk mengisytiharkan pembolehubah tetapi untuk menambah atribut
pada objek global.
Mari lihat contoh mudah untuk menggambarkan masalah
Anda boleh menggunakan kaedah berikut untuk menyemak sama ada pembolehubah global diisytiharkan
"Nama pembolehubah" dalam tetingkap
Kedua, semua pengisytiharan pembolehubah berada di bahagian atas skop, lihat contoh yang serupa:
Anda boleh membahagikan pernyataan kepada kod seperti ini:
Kod dalam soalan adalah bersamaan dengan:
Menurut analisis contoh di atas, apabila mengisytiharkan pembolehubah, anda mesti menambah var sebelum pembolehubah tempatan yang diisytiharkan Jika anda mengisytiharkan pembolehubah global, anda tidak perlu menambah var (sebaik-baiknya untuk mengehadkan bilangan pembolehubah global dan cuba gunakan pembolehubah tempatan)
Berikut menerangkan beberapa ciri penggunaan var
Menggunakan pernyataan var untuk mengisytiharkan pembolehubah berbilang kali bukan sahaja sah, tetapi juga tidak menyebabkan sebarang ralat.
Jika penyataan yang digunakan semula mempunyai nilai awal, ia bertindak hanya sebagai penyataan tugasan.
Jika pengisytiharan digunakan semula tanpa nilai awal, ia tidak akan memberi kesan kepada pembolehubah asal.
Pembolehubah yang diisytiharkan tanpa var wujud sebagai pembolehubah global yang diisytiharkan dengan var adalah pembolehubah tempatan, terutamanya dalam fungsi. Selain itu, selepas ujian, pengisytiharan dengan var adalah lebih cepat daripada tanpa var. Sediakan sebanyak mungkin pembolehubah tempatan dalam fungsi, supaya ia selamat dan pantas, dan operasi pembolehubah adalah lebih munasabah Ralat logik tidak akan disebabkan oleh manipulasi rawak pembolehubah global dalam fungsi.
Apabila mengisytiharkan objek, sebaiknya gunakan kaedah muka diri objek, yang jauh lebih pantas daripada kaedah baharu.
Nama pembolehubah dipilih oleh anda sendiri Untuk menjaga semantik dan spesifikasi, nama pembolehubah mungkin lebih panjang sedikit, tetapi sila ambil perhatian bahawa panjang nama pembolehubah juga akan mempengaruhi kelajuan pelaksanaan kod. Pengisytiharan dengan nama pembolehubah panjang tidak dilaksanakan secepat yang pendek.