Ada dua jenis variabel dalam JavaScript: variabel lokal dan variabel global. Tentu saja, artikel kami adalah membantu Anda benar -benar membedakan dua variabel ini.
Pertama, variabel lokal mengacu pada fungsi yang hanya dapat dipanggil dalam fungsi yang dinyatakan oleh variabel ini. Variabel yang dapat dipanggil dalam seluruh kode sebagai variabel global. Tentu saja, jelas tidak jelas untuk dipahami secara harfiah. Saya akan memperkenalkannya secara rinci di bawah ini:
Seperti yang kita semua tahu, variabel perlu dinyatakan dengan kata kunci VAR. Namun, variabel juga dapat digunakan secara implisit dalam JavaScript, yang berarti mereka digunakan secara langsung tanpa deklarasi. Selain itu, berhati -hatilah karena JavaScript selalu menggunakan variabel yang dinyatakan secara implisit sebagai variabel global.
Misalnya:
Salinan kode adalah sebagai berikut:
function myName () {
i = 'yuanjianhang';
}
myName ();
fungsi mengatakanName () {
waspada (i);
}
Sayname ();
Hasil outputnya adalah: yuanjianhang
Ini menunjukkan bahwa variabel I adalah variabel global. Jika kode di atas diubah ke yang berikut:
Salinan kode adalah sebagai berikut:
function myName () {
var i = 'yuanjianhang';
}
myName ();
fungsi mengatakanName () {
waspada (i);
}
Sayname ();
Pada titik ini, browser tidak akan memiliki hasil output, karena saya didefinisikan dalam fungsi myName, jadi itu hanya variabel lokal myName dan tidak dapat dipanggil secara eksternal.
Sekarang lihat kembali kode berikut:
Salinan kode adalah sebagai berikut:
function myName () {
i = 'yuanjianhang';
}
myName ();
fungsi mengatakanName () {
waspada (i);
}
Sayname ();
Sekarang, mari kita buat beberapa perubahan dan hapus myName (); dan kodenya adalah sebagai berikut:
Salinan kode adalah sebagai berikut:
function myName () {
i = 'yuanjianhang';
}
fungsi mengatakanName () {
waspada (i);
}
Sayname ();
Pada saat ini, browser tidak akan banyak bereaksi. Karena meskipun saya adalah variabel global, fungsi myName () tidak dipanggil, jadi setara dengan itu meskipun saya dinyatakan, itu tidak memberikan nilai apa pun kepada saya, jadi tidak ada output.
Demikian pula, jika contoh di atas diubah menjadi:
Salinan kode adalah sebagai berikut:
function myName () {
i = 'yuanjianhang';
}
fungsi mengatakanName () {
waspada (i);
}
Sayname ();
myName ();
Dalam hal ini, tidak ada hasil yang akan menjadi output. Ketika kode JavaScript dieksekusi, nilai variabel saya akan diperiksa ketika fungsi SayName () dipanggil. Pada saat ini, fungsi myName belum dieksekusi, yang berarti bahwa saya belum ditugaskan, jadi tidak ada hasil yang akan menjadi output.
Untuk memfasilitasi pemahaman semua orang yang lebih baik, berikut adalah contoh lain:
Salinan kode adalah sebagai berikut:
var i = 'yuanjianhang';
fungsi mylovename () {
i = 'guanxi';
}
mylovename ();
function myName () {
waspada (i);
}
myName ();
Apa hasilnya kali ini?
Jawabannya adalah guanxi
Pertama -tama, nilai asli I adalah Yuanjianhang, tetapi setelah menyebut fungsi mylovename (), nilai i diubah menjadi guanxi, jadi hasil output akhir adalah guanxi.
Jika Anda mengubah kode menjadi:
Salinan kode adalah sebagai berikut:
var i = 'yuanjianhang';
fungsi mylovename () {
var i = 'guanxi';
}
mylovename ();
function myName () {
waspada (i);
}
myName ();
Hasilnya saat ini adalah Yuanjianhang, karena keduanya dalam kode berbeda, satu global dan yang lainnya adalah lokal. Itu juga dapat dipahami dengan cara ini. Meskipun nama -nama keduanya, saya sama, esensi dari dua ini saya berbeda, seolah -olah ada dua orang dengan nama yang sama. Meskipun namanya sama, mereka bukan orang yang sama.
Jika Anda mengubah kode menjadi ini:
Salinan kode adalah sebagai berikut:
var i = 'yuanjianhang';
fungsi mylovename () {
i = 'guanxi';
}
function myName () {
waspada (i);
}
myName ();
mylovename ();
Saya percaya semua orang bisa mengetahui hasilnya sendiri, dan hasilnya adalah Yuanjianhang.
Karena variabel global dapat dipanggil di dalam fungsi, bagaimana dengan situasi berikut:
Salinan kode adalah sebagai berikut:
var i = 'yuanjianhang';
fungsi mylovename () {
i = 'guanxi';
waspada (i);
}
mylovename ();
Nilai apa variabel saat ini?
Mari kita analisis:
Pertama, variabel global I ditugaskan sebagai: Yuanjianhang.
Fungsi mylovename () berikutnya disebut, dan variabel global saya dipindahkan ke nilai baru: guanxi
Jadi hasilnya pasti: guanxi.
Bagaimana jika kita waspada terlebih dahulu, seperti ini:
Salinan kode adalah sebagai berikut:
var i = 'yuanjianhang';
fungsi mylovename () {
waspada (i);
i = 'guanxi';
}
mylovename ();
Apa hasilnya saat ini?
Hasil terverifikasi adalah: tidak ditentukan
Bagaimana jika kodenya seperti ini:
Salinan kode adalah sebagai berikut:
var i = 'yuanjianhang';
fungsi mylovename () {
waspada (i);
}
mylovename ();
Hasilnya saat ini adalah: Yuanjianhang
Mengapa situasi yang tidak terdefinisi di atas terjadi? Karena urutan eksekusi kode dari atas ke bawah, dan tidak ada definisi saya sebelum mengeluarkan i. Jadi dari ini kita dapat melihat bahwa ketika menggunakan kode, deklarasi variabel harus ditempatkan di depan kode untuk menghindari masalah yang sama!
Demikian pula:
Salinan kode adalah sebagai berikut:
var i = 'yuanjianhang';
fungsi mylovename () {
waspada (i);
var i = 'guanxi';
}
mylovename ();
Dalam hal ini, itu juga akan output: tidak terdefinisi
Oke, saya hanya memiliki begitu banyak perkenalan tentang variabel, dan saya yakin ada yang bisa memahami ini. Tidak peduli bagaimana kode disalin, intinya tidak akan berubah.
Di atas adalah semua tentang artikel ini. Apakah Anda memiliki pemahaman yang lebih dalam tentang perbedaan antara variabel lokal dan variabel global dalam JavaScript? Saya berharap Anda selamat tahun baru dan belajar bahagia.