Javascript biarkan atau var untuk loop

Ada banyak kebingungan tentang penggunaan let dan var dalam Javascript. Jadi, inilah perbedaan di mana Anda sekarang dapat dengan mudah memutuskan apa yang akan digunakan di mana dan kapan

Keterangan

let memberi Anda hak istimewa untuk mendeklarasikan variabel yang cakupannya terbatas pada blok, pernyataan ekspresi tidak seperti var

var lebih merupakan kata kunci yang mendefinisikan variabel secara global terlepas dari cakupan blok

Sekarang, izinkan saya menunjukkan kepada Anda bagaimana mereka berbeda

Objek jendela global

Sekalipun variabel let didefinisikan sama dengan variabel var secara global, variabel let tidak akan ditambahkan ke objek jendela global

Lihat contoh di bawah -

var varVariable = “this is a var variable”;let letVariable = “this is a let variable”;

Katakanlah, di sini kita memiliki dua variabel yang dideklarasikan. mari kita lihat hasil apa yang sebenarnya diberikannya kepada Anda

console.log(window.varVariable); //this is a var variableconsole.log(window.letVariable); //undefined
_

Jadi biarkan variabel tidak dapat diakses di objek jendela karena tidak dapat diakses secara global

Memblokir

variabel let biasanya digunakan ketika penggunaan variabel tersebut terbatas. Katakanlah, di for loop, while loop atau di dalam lingkup kondisi if dll. Pada dasarnya, di mana pun ruang lingkup variabel harus dibatasi

Sebagai contoh. -

Untuk loop menggunakan variabel let. -

for(let i=0;i<10;i++){console.log(i); //i is visible thus is logged in the console as 0,1,2,....,9}
console.log(i); //throws an error as "i is not defined" because i is not visible

Untuk loop menggunakan variabel var. -

for(var i=0; i<10; i++){console.log(i); //i is visible thus is logged in the console as 0,1,2,....,9}
console.log(i); //i is visible here too. thus is logged as 10.

Jadi, seperti yang Anda lihat, variabel var dicatat sebagai 10 di luar for loop juga

Catatan. Itu mencatatnya sebagai 10 karena for loop berakhir setelah memeriksa nilai i yang bertambah

Deklarasi ulang

biarkan variabel tidak dapat dideklarasikan ulang sementara variabel var dapat dideklarasikan ulang dalam lingkup yang sama

Asumsikan kita menggunakan mode ketat

'use strict';
var temp = "this is a temp variable";
var temp = "this is a second temp variable"; //replaced easily
_

Kita tidak bisa melakukan hal yang sama dengan let-

'use strict';
let temp = "this is a temp variable";
let temp = "this is a second temp variable" //SyntaxError: temp is already declared

Fungsi

variabel let dan var bekerja dengan cara yang sama saat digunakan dalam blok fungsi

function aSampleFunction(){
let letVariable = "Hey! What's up? I am let variable.";
var varVariable = "Hey! How are you? I am var variable.";
console.log(letVariable); //Hey! What's up? I am let variable.
console.log(varVariable); //Hey! How are you? I am var variable.
}
_

Dengan penjelasan di atas, saya pasti dapat mengatakan bahwa sekarang Anda memiliki gagasan total tentang perbedaan variabel let dan var

Kata kunci

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
_5 diperkenalkan di versi JavaScript yang lebih baru yang dikenal sebagai ES6(ES2015). Dan itulah cara pilihan untuk mendeklarasikan variabel


Inilah ikhtisar perbedaan antara

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
5 dan
// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
4

letvarlet adalah cakupan blok. var adalah cakupan fungsi. let tidak memungkinkan untuk mendeklarasikan ulang variabel. var memungkinkan untuk mendeklarasikan ulang variabel. Mengangkat tidak terjadi di biarkan. Pengangkatan terjadi di var


JavaScript biarkan Vs var di Lingkup Lokal

var adalah cakupan fungsi

Variabel yang dideklarasikan di dalam fungsi dengan

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
_4 dapat digunakan di mana saja dalam suatu fungsi. Sebagai contoh,

// program to print text
// variable a cannot be used here
function greet() {
    // variable a can be used here
    var a = 'hello';
    console.log(a);
}
// variable a cannot be used here

greet(); // hello

Pada program di atas, variabel a dideklarasikan dengan

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
4. Variabel a dapat digunakan di mana saja di dalam fungsi
hello world
Uncaught ReferenceError: b is not defined
1

biarkan adalah cakupan-blok

Variabel yang dideklarasikan dengan

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
_5 hanya dapat diakses di dalam blok kode. Sebagai contoh,

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();

Keluaran

hello world
Uncaught ReferenceError: b is not defined

Pada program di atas, variabel a dideklarasikan di dalam fungsi dan dapat diakses di mana saja di dalam fungsi (a menjadi ruang lingkup fungsi)

Namun variabel b dideklarasikan di dalam pernyataan blok ________13______3. b akan dicakup dalam blok dan hanya dapat diakses di dalam blok

hello world
Uncaught ReferenceError: b is not defined
3

Karenanya ketika Anda mencoba mengakses b di luar blok

hello world
Uncaught ReferenceError: b is not defined
3, terjadi kesalahan (seperti yang ditunjukkan di atas dalam program)

Catatan. Variabel yang dideklarasikan di dalam fungsi akan dicakup oleh fungsi untuk

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
4 dan
// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
5


let tidak memungkinkan untuk mendeklarasikan ulang Variabel

1. Sebuah variabel yang dideklarasikan dengan

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
4 dapat dideklarasikan kembali. Sebagai contoh,

var a = 5; // 5
var a = 3; // 3

Variabel yang dideklarasikan dengan

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
5 tidak dapat dideklarasikan ulang dalam blok yang sama atau ruang lingkup yang sama. Sebagai contoh,

let a = 5;
let a = 3; // error 

Keluaran

Uncaught SyntaxError: Identifier 'a' has already been declared

2. Mendeklarasikan ulang variabel dengan

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
_4 dalam lingkup atau blok yang berbeda juga mengubah nilai variabel luar. Sebagai contoh,

var a = 5;
console.log(a); // 5
{
    var a = 3;
    console.log(a); // 3
}
console.log(a); // 3

Mendeklarasikan ulang variabel dengan

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
_5 dalam lingkup atau blok yang berbeda akan memperlakukan variabel tersebut sebagai variabel yang berbeda. Dan nilai variabel di luar tidak berubah. Sebagai contoh,

let a = 5;
console.log(a); // 5
{
    let a = 3;
    console.log(a); // 3
}
console.log(a); // 5

3. Ketika variabel yang dideklarasikan dengan

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
_4 digunakan dalam satu lingkaran, nilai variabel itu berubah. Sebagai contoh,

var a = 2;
for(var a = 0; a < 3; a++) {
    console.log('hello');
}
console.log(a); // 3

Dalam program di atas, loop

var a = 5; // 5
var a = 3; // 3
_3 mendeklarasikan ulang variabel a. Oleh karena itu nilai
var a = 5; // 5
var a = 3; // 3
_4 diubah menjadi 3 pada akhirnya

Ketika variabel yang dideklarasikan dengan let digunakan dalam satu lingkaran, nilai variabel tidak berubah. Sebagai contoh,

let a = 2;
for(let a = 0; a < 3; a++) {
    console.log('hello');
}
console.log(a); // 2

Dalam program di atas,

var a = 5; // 5
var a = 3; // 3
_3 loop memperlakukan variabel a sebagai variabel yang berbeda dari yang dideklarasikan di atas. Dan ruang lingkup variabel itu hanya di dalam
var a = 5; // 5
var a = 3; // 3
3 loop. Oleh karena itu, nilai variabel a tetap 2 di akhir


let Tidak Mengizinkan Mengangkat

Variabel yang dideklarasikan dengan

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
4 diangkat ke bagian atas cakupan program. Sebagai contoh,

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
0

Kata kunci

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
_5 tidak mengizinkan pengangkatan. Sebagai contoh,

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
1

Jika Anda ingin mempelajari lebih lanjut tentang mengangkat, kunjungi Pengangkatan JavaScript


biarkan dan var Dukungan Browser

Sebagian besar browser modern mendukung penggunaan

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
5. Namun, beberapa browser tidak sepenuhnya mendukung
// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
5

Untuk mempelajari lebih lanjut, kunjungi


Catatan. Dalam hal lingkup global,

// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
_4 dan
// program to print the text
// variable a cannot be used here
function greet() {
    let a = 'hello';

    // variable b cannot be used here
    if(a == 'hello'){
        // variable b can be used here
        let b = 'world';
        console.log(a + ' ' + b);
    }

     // variable b cannot be used here
    console.log(a + ' ' + b); // error
}
// variable a cannot be used here

greet();
5 akan berperilaku dengan cara yang sama. Sebagai contoh,

Haruskah saya menggunakan var atau membiarkan JavaScript loop?

var dan let keduanya digunakan untuk deklarasi variabel dalam javascript tetapi perbedaan di antara keduanya adalah bahwa var adalah function scoped dan let adalah block scoped . Variabel yang dideklarasikan oleh let tidak dapat dideklarasikan ulang dan harus dideklarasikan sebelum digunakan sedangkan variabel yang dideklarasikan dengan kata kunci var diangkat.

Bisakah saya menggunakan var dalam JavaScript for loop?

Gunakan var x di loop for Anda . Untuk melengkapi semua ini. jika for loop berada dalam lingkup global (mis. e. bukan dalam fungsi), maka cakupan lokal (lingkup x dideklarasikan jika Anda menggunakan var x ) sama dengan cakupan global (cakupan x secara implisit dideklarasikan jika Anda menggunakan x tanpa var), jadi keduanya .

Mengapa menggunakan let alih-alih var untuk loop?

Deskripsi. biarkan memberi Anda hak istimewa untuk mendeklarasikan variabel yang cakupannya terbatas pada blok , pernyataan ekspresi tidak seperti var. var lebih merupakan kata kunci yang mendefinisikan variabel secara global terlepas dari cakupan blok.

Kapan sebaiknya saya menggunakan Let daripada VAR?

memungkinkan Anda untuk mendeklarasikan variabel yang cakupannya terbatas pada blok, pernyataan, atau ekspresi yang digunakannya . Ini tidak seperti kata kunci var, yang mendefinisikan variabel secara global, atau secara lokal ke seluruh fungsi terlepas dari cakupan blok.