Blog index

Javascript: let vs. var

Dibuat pada:

Di javascript, deklarasi variable ada tiga macam cara, dengan var, let atau const. var dan let bisa dibilang mirip, variable yang dideklarasikan sifatnya bisa diganti (mutable). Sedangkan const tidak bisa diganti (imutable).

Lalu kok bisa ada var, tetapi ada juga let?

let sebetulnya adalah successor dari var. Memakai let kode kita akan lebih terhindar dari bug.

seperti apa? Mari kita bahas.

let variableA = 10;
var variableB = 11;

function printVariables() {
  console.log(variableA);
  console.log(variableB);
}

printVariables();

Maka hasilnya akan:

10
11

Artinya variableA dan variableB keduanya visible dengan scope dari function printVariables. Mari kita ubah sedikit;

if (true) {
  let variableA = 10;
  var variableB = 11;
}

function printVariableA() {
  console.log(variableA);
}

function printVariableB() {
  console.log(variableB);
}

Jika kita panggil printVariableA(), javascript akan throw error:

Uncaught ReferenceError: variableA is not defined
    at printVariableA (:7:15)
    at :1:1

Tetapi jika kita panggil printVariableB(), tidak akan error. Dan justru akan print value dari variableB.

11

Itulah perbedaan scope antara var dan let. Scope var hanya berlaku di dalam function saja, sedangkan let tidak hanya function, tetapi ada juga di dalam if, dan loop.