Biến trong JavaScript là gì? Kiến thức về Biến trong JavaScript cho người mới

Biến là một khái niệm cơ bản trong lập trình, bất kỳ ngôn ngữ nào cũng có khái niệm này, và JavaScript cũng không phải là ngoại lệ. Khi bạn bắt đầu học JavaScript, việc hiểu và sử dụng biến là một bước quan trọng để xây dựng các ứng dụng JavaScript phức tạp. Cùng tìm hiểu biến trong JavaScript trong bài viết dưới đây.

Biến là gì?

Trong lập trình, biến là một khái niệm cơ bản để lưu trữ và đại diện cho một giá trị. Biến được sử dụng để gán giá trị cho một tên định danh cụ thể, từ đó cho phép bạn tham chiếu và sử dụng giá trị đó trong các phần khác của chương trình.
Khi bạn khai báo một biến, bạn đang tạo ra một vùng nhớ trong bộ nhớ để lưu trữ giá trị. Mỗi biến có một tên định danh duy nhất để bạn có thể tham chiếu đến nó. Bạn có thể thay đổi giá trị của biến trong quá trình thực thi của chương trình.
Trong hầu hết các ngôn ngữ lập trình, bạn phải khai báo biến trước khi sử dụng nó. Việc khai báo biến thông báo cho trình biên dịch hoặc trình thông dịch về việc tạo ra vùng nhớ cho biến và xác định kiểu dữ liệu mà biến có thể chứa.
Dưới đây là một ví dụ về khai báo và sử dụng biến trong JavaScript:
  1. let message; // Khai báo biến "message"
  2. message = 'Hello, world!'; // Gán giá trị "Hello, world!" cho biến "message"console.log(message); // In ra giá trị của biến "message"
Trong ví dụ trên, chúng ta đã khai báo biến “message” bằng từ khóa “let” và gán giá trị “Hello, world!” cho biến đó. Sau đó, chúng ta sử dụng phương thức “console.log()” để in ra giá trị của biến “message” trong cửa sổ console.

Biến JavaScrip được lưu ở đâu

Trong JavaScript, biến được lưu trong bộ nhớ của trình duyệt hoặc môi trường thực thi JavaScript như Node.js. Vị trí cụ thể mà biến được lưu trữ phụ thuộc vào loại biến và ngữ cảnh thực thi.
Trong trình duyệt web, các biến JavaScript được lưu trữ trong bộ nhớ trình duyệt. Mỗi tab hoặc cửa sổ trình duyệt có một “Context” riêng, và các biến được tạo và sử dụng trong mỗi context đều được lưu trữ trong bộ nhớ của nó. Khi trang web được tải lại hoặc đóng, các biến trong bộ nhớ sẽ được giải phóng.
Trong môi trường thực thi JavaScript như Node.js, các biến được lưu trữ trong bộ nhớ của quá trình Node.js. Khi một file JavaScript được thực thi trong Node.js, các biến được tạo và sử dụng trong quá trình thực thi đó sẽ được lưu trữ trong bộ nhớ của quá trình Node.js. Khi quá trình Node.js kết thúc, bộ nhớ sẽ được giải phóng.
Ngoài ra, cũng có một số kiểu biến như biến toàn cục (global variables) và biến cục bộ (local variables) được lưu trữ ở các phạm vi khác nhau. Biến toàn cục được lưu trữ trong đối tượng toàn cục (global object) như window trong trình duyệt hoặc global trong Node.js. Biến cục bộ được lưu trữ trong phạm vi của hàm hoặc khối mã chứa biến đó.

Cách khai báo biến trong JavaScript

Trong JavaScript, có ba cách để khai báo biến: sử dụng từ khóa var, letconst.
  1. Sử dụng từ khóa var:
  1. var age = 25;
Biến được khai báo bằng var có phạm vi toàn cục (global scope) hoặc phạm vi hàm (function scope). Biến khai báo bằng var có thể được khai báo lại và gán giá trị mới.
  1. Sử dụng từ khóa let:
  1. let name = 'John';
Biến được khai báo bằng let có phạm vi khối mã (block scope). Biến khai báo bằng let có thể thay đổi giá trị sau khi được gán.
  1. Sử dụng từ khóa const:
  1. const PI = 3.14;
  1. Biến được khai báo bằng const cũng có phạm vi khối mã (block scope), nhưng giá trị của biến không thể thay đổi sau khi được gán. const tạo ra một hằng số.
Khi khai báo biến, bạn có thể gán giá trị ban đầu cho biến hoặc để giá trị của biến là undefined nếu không cần gán giá trị ngay lập tức.
Ví dụ:
  1. let age = 25; // Khai báo biến "age" và gán giá trị là 25let name; // Khai báo biến "name" và giá trị là undefinedconst PI = 3.14; // Khai báo hằng số "PI" và gán giá trị là 3.14
Lưu ý rằng việc sử dụng letconst có phạm vi khối mã giúp tránh sự xung đột tên biến và hỗ trợ việc quản lý phạm vi biến tốt hơn. Do đó, thường khuyến nghị sử dụng let hoặc const thay cho var trong các phiên bản JavaScript mới.

Kiểu dữ liệu của biến

Kiểu dữ liệu Mô tả Ví dụ
Number Đại diện cho các giá trị số 5, 3.14, -10
String Đại diện cho các chuỗi ký tự “Hello”, ‘JavaScript’, “123”
Boolean Đại diện cho giá trị logic true, false
null Đại diện cho giá trị không có hoặc không tồn tại null
undefined Đại diện cho biến chưa được khởi tạo hoặc không có giá trị undefined
Object Đại diện cho một đối tượng { name: “John”, age: 25 }
Array Đại diện cho một mảng các giá trị [1, 2, 3]
Function Đại diện cho một khối mã thực thi function add(a, b) { return a + b; }
Symbol Đại diện cho một giá trị duy nhất và không thay đổi let id = Symbol(“id”);
Đọc thêm  Figma là gì? Tất tần tật các điểm mạnh của công cụ thiết kế website Figma
Lưu ý rằng các kiểu dữ liệu trong JavaScript có thể tương tác và chuyển đổi qua nhau trong quá trình thực thi của chương trình, nhưng việc chuyển đổi kiểu có thể gây ra những kết quả không mong muốn nếu không được quản lý cẩn thận.

Phạm vi của biến

Trong JavaScript, phạm vi của biến xác định vị trí và thời gian tồn tại của biến trong chương trình. Phạm vi quyết định xem một biến có thể truy cập từ đâu và khi nào nó sẽ bị hủy bỏ.
Có ba loại phạm vi biến trong JavaScript:
  1. Phạm vi toàn cục (Global Scope): Biến được khai báo ở phạm vi toàn cục có thể truy cập và sử dụng trong toàn bộ chương trình. Biến toàn cục được khai báo bên ngoài bất kỳ khối mã hay hàm nào. Đối tượng toàn cục trong trình duyệt là window, trong Node.js là global.
  2. Phạm vi hàm (Function Scope): Biến được khai báo bên trong một hàm chỉ có thể truy cập và sử dụng trong phạm vi của hàm đó. Ngoài phạm vi hàm, biến không thể truy cập từ bên ngoài.
  3. Phạm vi khối mã (Block Scope): Biến được khai báo bên trong một khối mã, như là một khối lệnh if, for, while, hoặc một khối lệnh khác được bao quanh bởi cặp dấu ngoặc nhọn {}, chỉ có thể truy cập và sử dụng trong phạm vi của khối mã đó. Phạm vi khối mã được giới thiệu trong ES6 với từ khóa letconst.
Phạm vi của biến trong JavaScript có thể tạo ra các phạm vi lồng nhau, trong đó biến trong phạm vi bên trong có thể truy cập biến trong phạm vi bên ngoài, nhưng không ngược lại. Trong trường hợp có hai biến cùng tên, biến ở phạm vi gần nhất sẽ được ưu tiên sử dụng.
Ví dụ:
  1. var globalVariable = 'Global'; // Biến toàn cụcfunction myFunction() {
  2.     var functionVariable = 'Function'; // Biến trong phạm vi hàmif (true) {
  3.         let blockVariable = 'Block'; // Biến trong phạm vi khối mãconsole.log(globalVariable); // Truy cập biến toàn cụcconsole.log(functionVariable); // Truy cập biến phạm vi hàmconsole.log(blockVariable); // Truy cập biến phạm vi khối mã
  4.     }
  5.     console.log(globalVariable); // Truy cập biến toàn cụcconsole.log(functionVariable); // Truy cập biến phạm vi hàmconsole.log(blockVariable); // Lỗi: Biến không khả dụng trong phạm vi này
  6. }
  7. myFunction();
  8. console.log(globalVariable); // Truy cập biến toàn cụcconsole.log(functionVariable); // Lỗi: Biến không khả dụng trong phạm vi nàyconsole.log(blockVariable); // Lỗi: Biến không khả dụng trong phạm vi này
Lưu ý rằng biến toàn cục có thể gây ra xung đột và khó kiểm soát. Vì vậy, khuyến nghị sử dụng phạm vi hàm và phạm vi khối mã (sử dụng let hoặc const) để quản lý biến một cách an toàn và tránh xung đột tên biến.

Một số lỗi với biến trong JavaScript

Trong JavaScript, có một số lỗi thường gặp liên quan đến biến mà bạn cần chú ý. Dưới đây là một số lỗi phổ biến với biến trong JavaScript:
  1. Lỗi “Undefined variable” (Biến không được xác định): Khi bạn sử dụng một biến chưa được khai báo hoặc không tồn tại, JavaScript sẽ báo lỗi “Undefined variable”. Điều này có thể xảy ra khi bạn gọi một biến mà chưa khai báo hoặc khi bạn chưa đặt giá trị cho biến trước khi sử dụng.
  2. Lỗi “Variable already declared” (Biến đã được khai báo): Nếu bạn khai báo một biến mà đã tồn tại trong cùng một phạm vi, JavaScript sẽ báo lỗi “Variable already declared”. Điều này xảy ra khi bạn sử dụng từ khóa var, let, hoặc const để khai báo biến mà tên biến đã được sử dụng trước đó.
  3. Lỗi “Cannot access variable before initialization” (Không thể truy cập biến trước khi khởi tạo): Khi bạn sử dụng biến trước khi nó được khởi tạo, JavaScript sẽ báo lỗi “Cannot access variable before initialization”. Điều này xảy ra khi bạn gọi hoặc sử dụng giá trị của biến trước khi gán giá trị cho biến đó.
  4. Lỗi “Assignment to constant variable” (Gán giá trị cho biến hằng): Nếu bạn cố gắng thay đổi giá trị của một biến được khai báo bằng từ khóa const, JavaScript sẽ báo lỗi “Assignment to constant variable”. Biến được khai báo bằng const không thể thay đổi giá trị sau khi được gán.
  5. Lỗi “Cannot access blocked-scoped variable” (Không thể truy cập biến có phạm vi khối mã): Khi bạn cố gắng truy cập biến được khai báo trong một khối mã (sử dụng let hoặc const) từ bên ngoài khối mã đó, JavaScript sẽ báo lỗi “Cannot access blocked-scoped variable”. Biến có phạm vi khối mã chỉ có thể truy cập và sử dụng trong cùng khối mã hoặc các khối mã lồng nhau.
Các lỗi này thường xảy ra khi không quản lý biến một cách cẩn thận. Để tránh lỗi, hãy chắc chắn rằng bạn đã khai báo và gán giá trị cho biến trước khi sử dụng, tránh đặt tên biến trùng lặp trong cùng một phạm vi, và hiểu rõ quy tắc về phạm vi và khối mã trong JavaScript.

Lời kết

Trong JavaScript, biến là một phần quan trọng để lưu trữ và xử lý dữ liệu trong chương trình. Việc hiểu và quản lý các khía cạnh liên quan đến biến là một yếu tố quan trọng trong việc nâng cao kỹ năng lập trình của bạn.
Trên hành trình học JavaScript, bạn đã tìm hiểu về cách khai báo biến, các kiểu dữ liệu khác nhau mà biến có thể lưu trữ, cũng như phạm vi của biến trong chương trình. Biết cách sử dụng đúng biến và xử lý các lỗi phổ biến giúp bạn viết code chính xác, hiệu quả và dễ bảo trì.

Tags :

Chia sẻ ngay :

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Bài viết liên quan

Bảng Giá Thiết Kế Website Thương Hiệu Cho Doanh Nghiệp
Dịch vụ thiết kế website thương hiệu cho doanh nghiệp tại WEBBOX là một hành trình mang tính chiến lược,...
Set trong Java
Set trong Java là gì? Tất tần tật kiến thức về Set trong Java
Trong lĩnh vực lập trình chắc hẳn các bạn đã từng nghe về Set trong Java, Set là một cấu trúc dữ liệu...
0
Rất thích suy nghĩ của bạn, hãy bình luận.x

Tư vấn giải pháp website tốt nhất cho doanh nghiệp

Chúng tôi luôn sẵn sàng lắng nghe và đưa ra giải pháp phù hợp nhất cho vấn đề của bạn.