Skip to main content

Command Palette

Search for a command to run...

JS 01. Var - Let - Const

Published
3 min read

Hello! I'm Zu.Doan

Series này mình muốn note lại những kiến thức về Javascript (JS)

var dùng như thế nào?

Từ khóa var được sử dụng để khai báo một biến trong JS

Biến được khai báo bằng var có một số đặc điểm như sau:

  • (1) Biến đó sẽ có phạm vi toàn cục.
  • (2) Biến đó sẽ có phạm vi cục bộ khi nằm trong hàm.
  • (3) Biến đó có thể được khai báo lại hoặc ghi đè giá trị.
  • (4) Biến đó sẽ được hoisting đồng thời được gán giá trị mặc định là undefined
console.log(k); // In ra undefined - do k có được đặc tính (1) & (4) 
{
  console.log(k); // In ra undefined - do k có được đặc tính (1) & (4) 
  {
    {
      const l = 2;
      if(l == 2) {
        var k = 1; // Do k đã được hoisting nên trên đầu của scope nên đoạn này tương đương việc khai báo lại và gán giá trị cho k - do k có được đặc tính (3)
      }
    }

    console.log(k);
  }

  function sayHello() {
    var name = 'zu';
  }

  console.log(name); // Do ta gọi biến name ở ngoài function nên sẽ trả về lỗi ReferenceError: name is not defined - do k có đặc tính (2)
}

let dùng như thế nào?

Từ khóa let được sử dụng để khai báo một biến trong JS

Biến được khai báo bằng let có một số đặc điểm như sau:

  • (1) Biến đó sẽ có phạm vi block scope.
  • (2) Biến đó có thể ghi đè giá trị.
  • (3) Biến đó sẽ được hoisting, nhưng KHÔNG được gán giá trị mặc định là undefined (chỉ được khởi tạo nhưng không được gán giá trị => lỗi Reference error)
{
  console.log(k); // ReferenceError: k is not defined - do k có đặc tính (1) + (3)
    {
      const l = 2;
      if(l == 2) {
        let k = 1;
        k = 2; // Có thể ghi đè giá trị của k
        let k = 3; // Uncaught SyntaxError: Identifier 'k' has already been declared
      }
    }

    console.log(k); // ReferenceError: k is not defined - do k có đặc tính (1) + (3)
  }

  function sayHello() {
    var name = 'zu';
  }

  console.log(name); // Do ta gọi biến name ở ngoài function nên sẽ trả về lỗi ReferenceError: name is not defined - do k có đặc tính (2)
}

const dùng như thế nào?

Từ khóa const được sử dụng để khai báo một biến trong JS

Biến được khai báo bằng const có một số đặc điểm như sau:

  • (1) Biến đó sẽ có phạm vi block scope.
  • (2) Biến đó KHÔNG thể ghi đè giá trị.
  • (3) Biến đó sẽ được hoisting, nhưng KHÔNG được gán giá trị mặc định là undefined (chỉ được khởi tạo nhưng không được gán giá trị => lỗi Reference error)
16 views

More from this blog

zujs

35 posts