Dalam tutorial ini, Anda akan belajar tentang perbedaan antara let dan var di JavaScript dengan bantuan contoh.
Dalam JavaScript, baik kata kunci var
maupun let
digunakan untuk mendeklarasikan variabel.
Kata let
kunci diperkenalkan di versi JavaScript yang lebih baru yang dikenal sebagai ES6 (ES2015) . Dan itu cara yang disukai untuk mendeklarasikan variabel.
JavaScript biarkan Vs var
Berikut ringkasan perbedaan antara let
dan var
.
membiarkan | var |
---|---|
let memiliki cakupan blok. | var memiliki cakupan fungsi. |
biarkan tidak memungkinkan untuk mendeklarasikan ulang variabel. | var memungkinkan untuk mendeklarasikan ulang variabel. |
Mengangkat tidak terjadi di biarkan. | Mengangkat terjadi di var. |
JavaScript biarkan Vs var di Lingkup Lokal
var memiliki cakupan fungsi
Variabel yang dideklarasikan di dalam fungsi dengan var
dapat digunakan di mana saja di dalam fungsi. Sebagai contoh,
// program to print text // variable a cannot be used here function greet() ( // variable a can be used here var a = 'hello'; console.log(a); ) // variable a cannot be used here greet(); // hello
Dalam program di atas, variabel a dideklarasikan dengan var
. Variabel a dapat digunakan di mana saja di dalam fungsi greet
.
let memiliki cakupan blok
Variabel yang dideklarasikan dengan let
hanya dapat diakses di dalam blok kode. Sebagai contoh,
// program to print the text // variable a cannot be used here function greet() ( let a = 'hello'; // variable b cannot be used here if(a == 'hello')( // variable b can be used here let b = 'world'; console.log(a + ' ' + b); ) // variable b cannot be used here console.log(a + ' ' + b); // error ) // variable a cannot be used here greet();
Keluaran
hello world Uncaught ReferenceError: b tidak ditentukan
Dalam program di atas, variabel a dideklarasikan di dalam fungsi dan dapat diakses di mana saja di dalam fungsi (a menjadi cakupan fungsi).
Namun variabel b dideklarasikan di dalam if
pernyataan blok. b akan memiliki cakupan blok dan hanya dapat diakses di dalam if
blok.
Karenanya ketika Anda mencoba mengakses b di luar if
blok, terjadi kesalahan (seperti yang ditunjukkan di atas dalam program).
Catatan : Variabel yang dideklarasikan di dalam fungsi akan menjadi cakupan fungsi untuk var
dan let
.
biarkan tidak memungkinkan untuk menyatakan kembali Variabel
1. Variabel yang dideklarasikan dengan var
dapat dideklarasikan ulang lagi. Sebagai contoh,
var a = 5; // 5 var a = 3; // 3
Variabel yang dideklarasikan dengan let
tidak dapat dideklarasikan ulang dalam blok yang sama atau cakupan yang sama. Sebagai contoh,
let a = 5; let a = 3; // error
Keluaran
SyntaxError Tidak Tertangkap: Pengenal 'a' telah dideklarasikan
2. Mendeklarasikan kembali variabel var
dalam lingkup atau blok yang berbeda juga mengubah nilai variabel luar. Sebagai contoh,
var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3
Mendeklarasikan ulang variabel dengan let
dalam cakupan atau blok yang berbeda memperlakukan variabel itu sebagai variabel yang berbeda. Dan nilai variabel di luar tidak berubah. Sebagai contoh,
let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5
3. Ketika variabel dideklarasikan dengan var
digunakan dalam satu lingkaran, nilai variabel itu berubah. Sebagai contoh,
var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3
Dalam program di atas, for
loop mendeklarasikan kembali variabel a. Oleh karena itu nilai a
diubah menjadi 3 di akhir.
Ketika variabel yang dideklarasikan dengan let digunakan dalam satu loop, nilai variabel tidak berubah. Sebagai contoh,
let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
Dalam program di atas, for
loop memperlakukan variabel a sebagai variabel yang berbeda dari yang dideklarasikan di atas. Dan ruang lingkup variabel itu hanya di dalam for
loop. Karenanya nilai variabel a tetap 2 di bagian akhir.
biarkan Tidak Mengizinkan Mengangkat
Variabel yang dideklarasikan dengan var
diangkat ke bagian atas cakupan program. Sebagai contoh,
console.log(a); var a; // undefined (not an error)
Kata kunci let
tidak memungkinkan pengangkatan. Sebagai contoh,
console.log(a); let a; // Uncaught ReferenceError: a is not defined
Jika Anda ingin mempelajari lebih lanjut tentang hoisting, kunjungi JavaScript Hoisting.
let dan var Dukungan Browser
Sebagian besar peramban modern mendukung penggunaan let
. Namun, beberapa browser tidak mendukung sepenuhnya let
.
Untuk mempelajari lebih lanjut, kunjungi JavaScript biarkan dukungan browser.
Catatan : Dalam kasus cakupan global, keduanya var
dan let
akan berperilaku dengan cara yang sama. Sebagai contoh,
var a = 5; // 5
Variabel a akan memiliki cakupan global dan dapat diakses di mana saja dalam program.
let a = 5; // 5
Variabel a akan memiliki cakupan global dan dapat diakses di mana saja dalam program.