Saturday, October 5, 2013

Lingkup Variabel di JavaScript

Setiap variabel di JavaScript dapat memiliki lingkup, cakupan, atau jangkauan yang manapun, bisa local scope atau global scope:

  • Jika lingkup suatu variabel adalah local scope, variabel itu dipertimbangkan sebagai variabel lokal.
  • Jika lingkup suatu variabel adalah global scope, variabel itu dipertimbangkan sebagai variabel global.

Local Scope
Suatu variabel dipertimbangkan sebagai variabel lokal, jika dia dideklarasikan di dalam suatu fungsi.

Catatan: Setiap variabel lokal hanya bisa di akses oleh kode-kode yang berada di dalam fungsi di mana variabel itu di deklarasikan.

Contoh kode di bawah ini, name dipertimbangkan sebagai variabel lokal:

function foo() { var name = "Gunawan"; // local scope }

Coba saja anda akses variabel name dari luar fungsi, apa yang dikembalikan?

function foo() { var name = "Gunawan"; // local scope } foo(); alert(name);

Jika anda mencoba kode di atas, tidak akan mengembalikan apapun, karena variabel name adalah variabel lokal, dan variabel name hanya bisa di akses oleh kode yang berada di dalam fungsi di mana variabel name dideklarasikan.

Coba jalankan kode di bawah ini, kali ini variabel name di akses oleh kode yang berada di dalam fungsi di mana variabel name dideklarasikan.

function foo() { var name = "Gunawan"; // local scope alert(name); // "Gunawan" } foo();

Coba jalankan kode di bawah ini, kali ini variabel name di akses oleh fungsi bernama fooo yang berada di dalam fungsi di mana variabel name dideklarasikan.

function foo() { var name = "Gunawan"; // local scope var fooo = function() { alert(name); // "Gunawan" } fooo(); } foo();

Global Scope
Suatu variabel dipertimbangkan sebagai variabel global, jika dia dideklarasikan di luar suatu fungsi.

Catatan: Setiap variabel global menyebabkan variabel itu bisa di akses oleh kode-kode yang manapun, dan perlu berhati-hati untuk penggunaannya.

Contoh kode di bawah ini, variabel name dipertimbangkan sebagai variabel global:

var name = "Gunawan"; // global scope

Karena setiap variabel global bisa di akses oleh kode manapun, termasuk oleh kode di dalam suatu fungsi, berikut contohnya:

var name = "Gunawan"; // global scope function foo(){ alert(name); // "Gunawan" } foo();

Ketika mempunyai dua variabel dengan nama yang sama, satu global scope dan satu lagi local scope, sebagai contoh:

var name = "Ipin"; // global scope function foo() { var name = "Gunawan"; // local scope }

Untuk contoh kode di atas:

  • Ketika anda mengakses variabel name dari dalam fungsi, anda berarti mengakses variabel lokal, yaitu variabel name bernilai "Gunawan".

    Contoh ketika mengakses variabel name dari dalam fungsi:

    var name = "Ipin"; // global scope function foo() { var name = "Gunawan"; // local scope alert(name); // "Gunawan" } foo();
  • Ketika anda mengakses variabel name dari luar fungsi, anda berarti mengakses variabel global, yaitu variabel name bernilai "Ipin".

    Contoh ketika mengakses variabel name dari luar fungsi:

    var name = "Ipin"; // global scope function foo() { var name = "Gunawan"; // local scope } foo(); alert(name); // "Ipin"

Tambahan: Jangan lupa selalu menyertakan var setiap mendeklarasikan variabel, jika dihilangkan, menyebabkan perilaku yang tidak terduga.