let

Kata let digunakan jika akan ada menetapkan ulang sebuah variabel. Berdasarkan hal tersebut, cara kerjanya akan seperti _var. _Tapi akan berbeda dibagian jangkauan penggunaan variabelnya.

function varTest() {
  var x = 1;
  if (true) {
    var x = 2;  // same variable!
    console.log(x);  // 2
  }
  console.log(x);  // 2
}

function letTest() {
  let x = 1;
  if (true) {
    let x = 2;  // different variable
    console.log(x);  // 2
  }
  console.log(x);  // 1
}

Global

Keduanya akan serupa ketika dideklarasikan diluar blok fungsi

let me = 'go';  // globally scoped
var i = 'able'; // globally scoped

Tapi, dengan let, variabel tersebut tidak akan masuk ke properti global objek window layaknya var

console.log(window.me); // undefined
console.log(window.i); // 'able'

Fungsi

Keduanya akan bersifat identik ketika disimpan di dalam blok fungsi

function ingWithinEstablishedParameters() {
    let terOfRecommendation = 'awesome worker!'; //function block scoped
    var sityCheerleading = 'go!'; //function block scoped
}

Blok

Di sini terlihat perbedaan, let hanya dapat diakses di dalam for() loop dan var dapat diakses di dalam blok fungsi tempat dia berada

function allyIlliterate() {
    //tuce is *not* visible out here

    for( let tuce = 0; tuce < 5; tuce++ ) {
        //tuce is only visible in here (and in the for() parentheses)
        //and there is a separate tuce variable for each iteration of the loop
    }

    //tuce is *not* visible out here
}

function byE40() {
    //nish *is* visible out here

    for( var nish = 0; nish < 5; nish++ ) {
        //nish is visible to the whole function
    }

    //nish *is* visible out here
}

Deklarasi Ulang

Asumsikan dalam mode yang kaku, var akan mengijinkan untuk di deklarasi ulang di wilayah yang sama, sedangkan let tidak

'use strict';
let me = 'foo';
let me = 'bar'; // SyntaxError: Identifier 'me' has already been declared

var me = 'foo';
var me = 'bar'; // No problem, `me` is replaced.

results matching ""

    No results matching ""