Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Mục đích khai báo biến trong JavaScript

Khai báo biến là bước bắt buộc trước khi sử dụng. Biến là "container" có tên – lưu trữ dữ liệu để tham chiếu, tái sử dụng, thao tác trong chương trình.

Tại sao phải khai báo?

  • Đăng ký tên trong scope hiện tại (global, function, block).
  • Phân bổ bộ nhớ (engine cấp phát slot trong Lexical Environment).
  • Khởi tạo giá trị mặc định (undefined cho var/let, uninitialized cho const).
  • Cho phép gán giá trị sau (initialization/assignment).

Cú pháp khai báo


// Khai báo đơn lẻ
var rank;
let points;
const MAX_LEVEL = 100;

// Khai báo nhiều biến cùng từ khóa
var rank, points, level;
let a = 1, b = 2, c = 3; // Có thể gán giá trị ngay

// Khai báo và gán (initialization)
var name = "Amit";
let score = 100;
const PI = 3.14159;

3 từ khóa khai báo (ES6+)

Từ khóaScopeHoistingRe-assignRe-declareKhởi tạo bắt buộc
varFunctionCó (init = undefined)CóCóKhông
letBlockCó (TDZ)CóKhôngKhông
constBlockCó (TDZ)KhôngKhôngCó

Quy tắc đặt tên biến

  • Bắt đầu bằng chữ cái, _, hoặc $ (không bắt đầu bằng số).
  • Chứa: chữ cái, số, _, $.
  • Phân biệt chữ hoa/thường: name ≠ Name.
  • Không dùng từ khóa dành riêng (for, if, const...).
  • Không dùng từ khóa dự trữ (enum, await...).

Ví dụ hợp lệ / không hợp lệ


// Hợp lệ
var name;
var _private;
var $element;
var userName;
const MAX_SIZE = 100;

// Không hợp lệ
var 2name;      // Bắt đầu bằng số
var user-name;  // Có dấu gạch ngang
var class;      // Từ khóa dành riêng
var export;     // Từ khóa dự trữ

Initialization (Khởi tạo) vs Assignment (Gán)


var x;        // Declaration + Initialization (giá trị = undefined)
x = 10;       // Assignment (gán giá trị)

var y = 20;   // Declaration + Initialization + Assignment cùng lúc

Best Practice hiện đại

  1. Mặc định dùng const – bất biến, an toàn, rõ ý định.
  2. Cần gán lại → dùng let.
  3. Tránh var – function scope, hoisting gây bug.
  4. Khai báo gần nơi sử dụng nhất (block scope).
  5. Đặt tên có ý nghĩa: userCount thay vì uc.
  6. Dùng const cho object/array – vẫn cho phép sửa nội dung, chỉ cấm gán lại biến.