Deklarasi Variabel dengan Let Pada Javascript (ES2015)
ECMAScript (ES) adalah spesifikasi bahasa scripting yang distandarisasi oleh ECMAScript International. Bahasa seperti JavaScript, JScript dan ActionScript diatur oleh spesifikasi ini.
Dan ES2015 atau ES6 sendiri adalah rilis utama keenam dari spesifikasi ECMAScript itu sendiri.
Biasanya untuk mendeklarasikan sebuah variabel pada javascript sering kita menggunakan var,tapi setelah muncul rilis terbaru dari Ecmascript, pada ES6 dikenalkan let dan const untuk mendeklarasikan sebuah variabel. Berbeda dengan var, dengan let memungkinkan untuk mendeklarasikan variabel yang terbatas cakupannya pada sebuah blok,statement atau expression. tidak seperti keyword “var” yang mendefinisikan variabel secara global atau secara lokal keseluruhan funsi terlepas dari cakupan blok. Oke untuk melihat lebih jelas perbedaan antara keyword var dengan let, kita bisa lihat pada contoh berikut :
Var vs Let
Contoh 1
var a = 10;{ var a = 20; //deklarasi variabel dg var pada sebuah blok console.log(a); // output: 20}console.log(a); // output: 20;
let b= 10;{ let b= 20; //deklarasi variabel dg let pada sebuah blok console.log(b); // output: 20}console.log(b); // output: 10
pada contoh 1 pertama diatas, bisa kita lihat, ketika menggunakan var, maka ketika kita mendeklarasikan variabel dengan nama yang sama pada sebuah blok,maka nilai variabel itu akan berubah, sedangkan jika menggunakan let, variabel yang kita deklarasikan di dalam sebuah blok akan dianggap sebagai variabel tersendiri dan tidak mempengaruhi variabel yang dideklariskan di luar blok sehingga, output yang dihasilkan berbeda.
Contoh 2
{ var salary1 = 9000;}console.log(salary1); // output : 9000{ let salary2 = 8000;}console.log(salary2); // output: Uncaught ReferenceError: salary2 is not defined
dengan let, kita bisa membuat sebuah variable private yang tidak bisa diakses secara global, atau diakses diluar blok,statement,expression dimana variabel itu dideklarasikan. seperti contoh diatas. variabel salary1 bisa diakses diluar blok scope, sedangkan variabel salary2 yang dideklarasikan tidak bisa diprint pada console karena diakses diluar blok.
Contoh 3
var job1 = ‘designer’;var job1 = ‘ui/ux designer’; //tidak terjadi errorlet job2 = ‘backend developer’;let job2 = ‘frontend developer’; //error ‘Uncaught SyntaxError: Identifier 'job2' has already been declared’
perbedaan yang ketiga, jika kita menggunakan var,maka kita bisa mendeklarasikan ulang variabel tersebut, tapi dengan let akan muncul error seperti yang tertulis di script di atas (variabel ‘job2’ sudah dideklarasikan)
Contoh 4
var x = ‘global with var’;let y = ‘global with let’;console.log(this.x); // output: global with varconsole.log(this.y); // output: undefined
dan jika dideklarasikan pada level teratas sebuah program/function, variabel yang dideklarasikan dengan var bisa diakses dengan ‘this’ diikuti nama variabel,sedangkan variabel dg let, tidak bisa terbaca alias akan keluar output ‘undefined’;
Semoga penjelasan di atas bisa sedikit memberikan gambaran atau menambahkan pengetahuan tentang javascript untuk kamu. Kalau ingin membaca penjelasan lebih detail dan kompletnya bisa langsung mengunjungi situs https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let atau melalui referensi dibawah ini. oke terima kasih. happy coding :)
Referensi :