All Articles

perbedaan antara var, let dan const dalam Javascript

Di sini saya akan membahas perbedaan antara var, let dan const dalam Javascript.

var adalah sebuah cara untuk mendeklarasikan sebuah variabel yang sudah ada sejak ES5 sedangkan let dan const adalah sebuah fitur baru untuk mendeklarasikan sebuah variabel yang ada pada ES6.

Berikut adalah pembahasan satu persatu tentang perbedaan dari masing-masing.

~ var

variabel yang di deklarasikan dengan var bersifat global selama masih dalam cakupan sebuah function dan nilai atau valuenya dapat di rubah.

Mari kita lihat contoh berikut :

function a() {
  for (var i = 0; i < 5; i++) {
    console.log("didalam loop " + i); // i = 0, 1, 2, 3, 4
  }
  console.log("diluar loop, dalam cakupan function " + i); // i = 5
}
a();
console.log("diluar function", i); // i is not defined

kita dapat melihat var i yang dipanggil diluar for akan tetapi masih didalam cakupan function dapat di definisikan, dan ketika kita memanggilnya diluar function var i tidak dapat di definisikan. Mari kita lihat contoh lainnya :

var x = "teks";

function a() {
  x = "coba ubah teks 1";
  function b() {
    x = "coba ubah teks 2";
    console.log(x);
  }
  b();
}

a(); // outpunya adalah 'coba ubah teks 2'

dari contoh ke dua kita dapat melihat nilai dari var x dapat di rubah, artinya nilai atau value variabel yang dideklasri dengan var dapat di rubah.

~ let

variabel yang dideklarasi dengan let nilai atau valuenya sama seperti var yaitu dapat di rubah dan bersifat block scope.

Mari kita coba dengan contoh yang sama :

function a() {
  for (let i = 0; i < 5; i++) {
    console.log("didalam loop " + i); // i = 0, 1, 2, 3, 4
  }
  console.log("diluar loop, dalam cakupan function " + i); // i is not defined
}
a();
console.log("diluar function", i); // i is not defined

dari contoh di atas kita dapat melihat let i tidak dapat di panggil di luar for dan di luar function a().

contoh ke dua :

let x = "teks";

function a() {
  x = "coba ubah teks 1";
  function b() {
    x = "coba ubah teks 2";
    console.log(x);
  }
  b();
}

a(); // outpunya adalah 'coba ubah teks 2'

sama seperti var kita dapat melihat nilai dari let x dapat di rubah, artinya nilai atau value variabel yang dideklasri dengan let dapat di rubah.

~ const

variabel yang dideklarikan dengan const sama seperti let yaitu bersifat block scope, perbedaannya adalah nilai atau value pada const tidak dapat dirubah seperti var dan let atau bersifat constant.

Mari kita lihat contoh berikut :

const a = "teks";
a = "rubah teks";
console.log(a); // Assignment to constant variable.

dapat di lihat kita telah merubah nilai dari const a dari “teks” ke “rubah teks” ketika variabel a yang dideklarasikan dengan const di panggil maka akan menghasilkan error.

Mari kita lihat contoh lain :

const list = {
  name: "risman"
};
list.name = "kamarul";
console.log(list.name); // kamarul

dari contoh di atas kode dapat berjalan karena perubahan bukan dilakukan pada level variabel yang bersifat constant melainkan perubahan dilakukan pada level properties dari object tersebut.

Kesimpulan

  • variabel yang dideklarasikan dengan var dapat di rubah dan dapat digunakan di dalam lingkup fungsi (function scope).
  • variabel yang dideklarasikan dengan let dapat di rubah dan hanya bisa diakses dalam satu blok (block scope)
  • sedangkan variabel yang dideklarasikan dengan const bersifat sama dengan let, hanya saja variabel yang dideklarasikan dengan const tidak dapat dirubah atau bersifat constant.

var, let dan const dapat digunakan sesuai kebutuhannya masing-masing. Terimakasih telah membaca dan semoga bermanfaat.

Published 12 Oct 2017

Hello, my name is Risman and i am is a Javascript Developer
Kamarul Risman on Twitter