Perbedaan Const, Let, dan Var

Reza Z. Ramadan
2 min readJan 9, 2021

Kita sebagai pengembang JavaScript tentu sudah sangat akrab dengan kata-kata seperti const, let, dan var. Tapi apasih perbedaan mereka? Pada artikel ini, akan dijelaskan mengenai perbedaan dari const, let, dan var. Mari kita mulai!

Const

Const diperkenalkan pada EcmaScript2015 (ES6) dan merupakan block scoped variable. Variabel yang dideklarasikan menggunakan const harus langsung diisi. Jika tidak, maka akan mengeluarkan error. Berikut contohnya:

const x; //Missing initializer in const declaration.

Variabel yang dideklarasikan menggunakan const tidak mendefinisikan bahwa nilai variabel tersebut adalah konstan, tetapi mendefinisikan bahwa reference dari variabel tersebut adalah konstan. Maka dari itu, pada const kita tidak dapat mengubah primitive variables, tetapi kita dapat mengubah reference variables (tetapi tidak dapat meng-assign-nya kembali). Berikut contohnya:

const PI = 3.141592653589793;
PI = 3.14 //Assignment to constant variable.
const cat = {name: "Pus", color: "white"};
cat.name = "PusPus";
cat.type = "Turkish Angora";
cat = {name: "Yep", color: "white"}; //Assignment to constant variable.

Let

Sama seperti const, let dipekerkenalkan juga pada ES6 dan juga merupakan block scoped variable. Lalu apa bedanya const dan let? Yep, let dapat kita assign kembali tetapi kita tidak dapat mendeklarasikan let kembali. Berikut contohnya:

let x = 10;
x = 1;
let x = 15; //Identifier 'x' has already been declared.

Variabel yang dideklarasikan dengan let tidak akan dilakukan hoisting. Jadi, jika kita meng-assign sebelum melakukan deklarasi maka akan keluar error. Berikut contohnya:

x = 10;
let x; //Cannot access 'x' before initialization.

Var

Var sudah ada dari awal JavaScript dibentuk. Sebelum diperkenalkannya ES6, var-lah yang digunakan. Sebelum ES6 pula, tipe scope pada JavaScript hanya ada dua, yaitu Global Scope dan Function Scope. Berikut contohnya:

var x = 10; //Global Scope.function myFunction() {
var y = 5; //Function Scope.
}

Berbeda dengan let, variabel yang dideklarasikan menggunakan var akan dilakukan hoisting dan juga kita dapat mendeklarasikan ulang variabel tersebut dan tidak akan kehilangan nilai sebelumnya. Berikut contohnya:

x = 10;
console.log(x); //10
var x;
var x;
console.log(x); //10

Sekian artikel mengenai perbedaan const, let, dan var. Semoga dapat membantu kalian yang masih mencari perbedaan di antara variabel-variabel tersebut.

--

--