Postingan lainnya
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
ReactJs, var, let dan const
Saya agak bingung dengan penggunaan var, let dan const, adakah yang bisa menjelaskan bagaimana penggunaan dan perbedaan dari masing masing tadi? Terimakasih
1 Jawaban:
Jawaban Terpilih
semua command tersebut adalah declarative syntax, artinya untuk menyatakan bahwa variable tersebut exist, dengan ataupun tanpa value. ada beberapa perbedaan mendasar dari ketiganya.
pertama, 'var' dan 'let' bisa terdeklarasi tanpa value (undefined), tapi 'const' harus terdeklasari beserta valuenya.
var a; // valid
let b; // valid
const c; // Uncaught SyntaxError: Missing initializer in const declaration
kedua, dalam scope yang sama, 'var' dan 'let' value bisa berubah, 'const' tidak.
//var
var a = 'a';
a = 'AA'; // valid
//let
let b = 'b';
b = 'BB'; // valid
//const
const c = 'c';
c = 'CC'; // Uncaught TypeError: Assignment to constant variable.
ketiga, 'var' masuk ke global scope, 'let' dan 'const' lebih ke block scope
var a = 1;
let b = 2;
const c = 3;
if(true)
{
var a = 11; // global a berubah
let b = 22; // muncul variable b baru didalam if block
const c = 33; // muncul variable c baru didalam if block
console.log(a); // global a 11
console.log(b); // block b 22
console.log(c); // block c 33
}
console.log(a); // global a 11
console.log(b); // global b 2
console.log(c); // global c 3
dari contoh diatas terlihat kalau let dan const di dalam if block tidak merubah global variable yang muncul pertama, sedangkan var merubah global value.
terakhir adalah tentang hoisting, deklarasi 'var' selalu ditempatkan di atas pada saat compile, walaupun kita menaruhnya di bawah. sedangkan 'let' dan 'const' tidak ter hoisting.
a = 5;
console.log(a); // 5
var a;
// script diatas valid karena pada saat compile 'var' terhoisting ke atas sehingga script diatas sama dengan
var a;
a = 5;
console.log(a); // 5
beda dengan 'let' dan 'const', deklarasi keduanya harus sebelum penggunaan
a = 5;
console.log(a); // Uncaught ReferenceError: a is not defined
let a;
b = 5;
console.log(b); // Uncaught ReferenceError: b is not defined
const b; // Uncaught SyntaxError: Missing initializer in const declaration