Variable

Duy Văn | 05/02/2025


  1. Khai báo
  2. Tên biến
  3. Gán giá trị
  4. Kết

Khai báo

Như đã nói, biến có thể được khai báo bằng:

  • tự khai báo
  • dùng var
  • dùng let
  • dùng const
  • khai báo thông qua biến khác

Ví dụ cụ thể cả 5 cách:

a = 5;
var b = 10;
let c = 15;
const d = 20;
e = a;
console.log(a, b, c, d, e); // 5 10 15 20 5

Cách khai báo biến thì quy luật luôn là nên khai báo từ đầu tại scope của biến đấy, lý do thì ở đây

Cách khai báo bằng var cũng đã rất hạn chế sử dụng với let và const thay thế, vì var có scope toàn cục nếu không nằm trong function, nếu không sẽ là scope của function. Tuy nhiên convention này áp dụng cho phía Web Dev, còn phía lập trình thì bình thường.

Tên biến

Như đã nêu ở bài Syntax, tên biến không được bắt đầu bằng số, không chứa ký tự đặc biệt, không chứa khoảng trắng, không trùng với từ khóa của JS.

Ngoài ra, tên của các biến không được trùng với nhau và chúng đều phân biệt viết thường và viết hoa.

Gán giá trị

Gán giá trị được thực hiện với operator =, nếu chúng ta chỉ khai báo mà không gán giá trị thì giá trị của biến sẽ là undefined.

let a;
console.log(a); // undefined

Nếu thực hiện khai báo lại thì giá trị đã gán sẽ không mất đi mà nó chỉ thay đổi khi thực hiện gán lại

var a = 5;
console.log(a); // 5
var a;
console.log(a); // 5
a = 10;
console.log(a); // 10

Đối với let và const thì không thể khai báo lại, nếu thực hiện sẽ báo lỗi

Kết

Chốt lại cho let và const

let được đưa vào JS sau ES6 - ECMAScript 2015

  • biến khai báo bằng let sẽ chỉ tồn tại trong block scope mà nó được khai báo
  • biến khai báo bằng let cần phải được khai báo trước khi sử dụng
  • biến khai báo bằng let không thể được khai báo lại trong cùng 1 scope
  • let có vấn đề với hoisting, nếu truy cập biến trước khi nó được khai báo, sẽ báo lỗi

const cũng được đưa vào JS sau ES6 - ECMAScript 2015

  • biến khai báo bằng const sẽ chỉ tồn tại trong block scope mà nó được khai báo
  • biến khai báo bằng const cần phải được khai báo cùng giá trị ngay từ lúc khai báo
  • biến khai báo bằng const không thể khai báo lại
  • biến khai báo bằng const không thể gán lại giá trị mới

Có một điểm đặc biệt với khai báo biến khi được dùng với các object khác hay array, đó là const ám chỉ reference tới giá trị chứ không phải ám chỉ giá trị

Đồng thời vì let và const không hoist được, ngay lập tức báo lỗi nên sẽ giúp tránh được bug