Variabel dalam JavaScript
Last updated
Last updated
Variabel dalam JavaScript digunakan untuk menyimpan nilai yang dapat digunakan atau diubah dalam program. Ada tiga cara untuk mendeklarasikan variabel di JavaScript: var
, let
, dan const
. Berikut adalah perbedaan antara ketiganya:
Fitur
var
let
const
Scope
Function-scoped
Block-scoped
Block-scoped
Reassign Value
Yes
Yes
No (immutable)
Hoisting
Yes (hanya deklarasi)
Yes (tidak boleh digunakan sebelum deklarasi)
Yes (tidak boleh digunakan sebelum deklarasi)
Scope:
var
: Variabel var
diberlakukan sebagai variabel yang bersifat function-scoped. Ini berarti variabel var
hanya dapat diakses di dalam fungsi di mana itu dideklarasikan.
let
dan const
: Kedua variabel ini adalah block-scoped, artinya mereka hanya dapat diakses di dalam blok di mana mereka dideklarasikan (seperti blok { ... }
, fungsi, atau modul).
Reassign Value:
var
dan let
: Keduanya memungkinkan untuk menetapkan ulang nilai variabel setelah deklarasi awal.
const
: Variabel yang dideklarasikan dengan const
tidak dapat ditugaskan kembali setelah pertama kali nilainya ditetapkan. Namun, untuk objek dan array yang dideklarasikan dengan const
, properti mereka dapat dimutasi.
Hoisting:
var
: Variabel var
akan di-"hoist" (dinaikkan) ke atas lingkup fungsinya, yang berarti deklarasi variabel var
dapat diakses sebelum sebenarnya dideklarasikan dalam kode.
let
dan const
: Kedua variabel ini tidak di-"hoist" dalam arti bahwa mereka tidak dapat digunakan sebelum mereka dideklarasikan dalam kode.
Contoh Penggunaan
var
var
memiliki cakupan fungsi.
x
bisa diakses di dalam dan di luar fungsi.
y
hanya bisa diakses di dalam fungsi.
let
let
memiliki cakupan blok.
a
bisa diakses di dalam dan di luar fungsi.
b
hanya bisa diakses di dalam blok fungsi.
const
const
juga memiliki cakupan blok.
Nilai const
tidak bisa diubah setelah dideklarasikan.
Tabel di atas memberikan gambaran singkat tentang perbedaan antara var
, let
, dan const
dalam JavaScript. Jika ada pertanyaan lebih lanjut atau memerlukan penjelasan tambahan, silakan tanyakan!