Dalam tutorial ini, Anda akan belajar tentang ruang lingkup variabel dalam JavaScript dengan bantuan contoh.
Lingkup mengacu pada ketersediaan variabel dan fungsi di bagian kode tertentu.
Di JavaScript, variabel memiliki dua jenis cakupan:
- Lingkup Global
- Lingkup Lokal
Lingkup Global
Variabel yang dideklarasikan di bagian atas program atau di luar fungsi dianggap sebagai variabel cakupan global.
Mari kita lihat contoh variabel cakupan global.
// program to print a text let a = "hello"; function greet () ( console.log(a); ) greet(); // hello
Dalam program di atas, variabel a dideklarasikan di bagian atas program dan merupakan variabel global. Artinya variabel a
dapat digunakan di mana saja dalam program.
Nilai variabel global dapat diubah di dalam fungsi. Sebagai contoh,
// program to show the change in global variable let a = "hello"; function greet() ( a = 3; ) // before the function call console.log(a); //after the function call greet(); console.log(a); // 3
Pada program di atas, variabel a adalah variabel global. Nilai a adalah halo. Kemudian variabel a diakses di dalam fungsi dan nilainya berubah menjadi 3.
Karenanya, nilai a berubah setelah mengubahnya di dalam fungsi.
Catatan : Sebaiknya hindari penggunaan variabel global karena nilai variabel global dapat berubah di berbagai area dalam program. Itu dapat memperkenalkan hasil yang tidak diketahui dalam program.
Dalam JavaScript, variabel juga dapat digunakan tanpa mendeklarasikannya. Jika variabel digunakan tanpa mendeklarasikannya, variabel itu secara otomatis menjadi variabel global.
Sebagai contoh,
function greet() ( a = "hello" ) greet(); console.log(a); // hello
Pada program di atas, variabel a adalah variabel global.
Jika variabel dideklarasikan menggunakan let a = "hello"
, program akan memberikan error.
Catatan : Dalam JavaScript, ada "strict mode";
variabel yang tidak dapat digunakan tanpa mendeklarasikannya. Untuk mempelajari lebih lanjut tentang ketat, kunjungi JavaScript Ketat.
Lingkup Lokal
Variabel juga dapat memiliki cakupan lokal, yaitu hanya dapat diakses di dalam suatu fungsi.
Contoh 1: Variabel Cakupan Lokal
// program showing local scope of a variable let a = "hello"; function greet() ( let b = "World" console.log(a + b); ) greet(); console.log(a + b); // error
Keluaran
helloWorld Uncaught ReferenceError: b tidak ditentukan
Pada program di atas, variabel a adalah variabel global dan variabel b adalah variabel lokal. Variabel b hanya dapat diakses di dalam fungsi greet. Oleh karena itu, ketika kita mencoba mengakses variabel b di luar fungsi, terjadi kesalahan.
biarkan adalah Block Scoped
Kata let
kunci memiliki cakupan blok (variabel hanya dapat diakses di blok langsung).
Contoh 2: Variabel dengan cakupan blok
// program showing block-scoped concept // global variable let a = 'Hello'; function greet() ( // local variable let b = 'World'; console.log(a + ' ' + b); if (b == 'World') ( // block-scoped variable let c = 'hello'; console.log(a + ' ' + b + ' ' + c); ) // variable x cannot be accessed here console.log(a + ' ' + b + ' ' + c); ) greet();
Keluaran
Hello World Hello World hello Uncaught ReferenceError: x tidak ditentukan
Dalam program di atas, variabel
- a adalah variabel global. Itu dapat diakses di mana saja di program.
- b adalah variabel lokal. Itu hanya dapat diakses di dalam fungsi
greet
. - c adalah variabel dengan cakupan blok. Itu hanya dapat diakses di dalam
if
blok pernyataan.
Karenanya, dalam program di atas, dua yang pertama console.log()
bekerja tanpa masalah.
Namun, kami mencoba mengakses variabel bercakupan blok c di luar blok pada yang ketiga console.log()
. Ini akan menimbulkan kesalahan.
Catatan : Dalam JavaScript, var
memiliki cakupan fungsi dan cakupan let
blok. Jika Anda mencoba untuk menggunakan var c = 'hello';
dalam if
pernyataan dalam program di atas, karya-karya seluruh program, seperti c diperlakukan sebagai variabel lokal.
Untuk mempelajari lebih lanjut tentang let
versus var
, kunjungi JavaScript let vs var.