Tìm hiểu các biến trong lập trình
Biến là gì?
Biến là thành phần thiết yếu trong lập trình vì chúng được sử dụng để lưu trữ thông tin có thể được tham chiếu và thao tác trong chương trình máy tính. Chúng cung cấp cách gắn nhãn dữ liệu bằng một tên mô tả, làm cho chương trình trở nên dễ hiểu hơn đối với người đọc và chính chúng ta. Hãy coi các biến như những vật chứa thông tin. Mục đích duy nhất của chúng là gắn nhãn và lưu trữ dữ liệu trong bộ nhớ, sau đó có thể sử dụng dữ liệu này trong toàn bộ chương trình của bạn.
Gán giá trị cho biến
Việc đặt tên biến có thể là một thách thức; có thể khó tìm được tên biến rõ ràng và ngắn gọn. Tuy nhiên, điều quan trọng là phải ưu tiên tính mô tả và dễ hiểu khi đặt tên biến. Hãy nhớ rằng những người khác, bao gồm cả bạn trong tương lai, sẽ cần đọc và hiểu mã. Việc sử dụng tên phản ánh chính xác mục đích của biến sẽ giúp mã của bạn dễ đọc và bảo trì hơn. Trong lập trình, bạn gán giá trị cho các biến bằng ký hiệu =
, với tên biến ở bên trái và giá trị ở bên phải.
Ví dụ:
let firstName = 'Joe';
console.log(firstName);
// Output: Joe
Ở đây, chuỗi 'Joe'
được gán cho biến firstName
.
Lưu ý: Đừng nhầm lẫn toán tử gán =
với toán tử đẳng thức ==
. Toán tử =
gán giá trị, trong khi ==
kiểm tra xem hai giá trị có bằng nhau hay không.
Lấy dữ liệu từ người dùng
Để cho phép người dùng tương tác, bạn có thể sử dụng các phương pháp để nắm bắt thông tin đầu vào của người dùng. Trong JavaScript, điều này có thể được thực hiện bằng gói prompt
.
Ví dụ:
const prompt = require('prompt');
prompt.start();
let { name } = await prompt.get(["name"]);
console.log(name);
// Input: Bob
// Output: Bob
Hàm prompt
thu thập thông tin đầu vào từ người dùng và lưu trữ nó trong biến name
.
Phạm vi biến
Phạm vi của một biến xác định nơi nó có thể truy cập được trong một chương trình. Phạm vi được xác định bởi nơi biến được khởi tạo.
Phạm vi biến trong hàm
Trong hàm, các biến được khởi tạo trong hàm chỉ có thể truy cập được bên trong hàm đó.
Ví dụ:
let name = 'Somebody Else';
function printFullName(firstName, lastName) {
let name = firstName + ' ' + lastName;
console.log(name);
}
printFullName('Peter', 'Henry'); // prints Peter Henry
printFullName('Lynn', 'Blake'); // prints Lynn Blake
console.log(name); // prints Somebody Else
Ở đây, biến name
bên trong hàm printFullName
tách biệt với biến name
bên ngoài nó.
Phạm vi và khối biến
Khối là một đoạn mã theo sau một câu lệnh điều khiển, chẳng hạn như if
, for
hoặc while
và được phân cách bằng dấu ngoặc nhọn {}
.
Ví dụ:
let total = 0;
\[1, 2, 3].forEach(function(number) {
total += number;
});
console.log(total); // Output: 6
total = 0;
for (let i = 0; i < 3; i++) {
total += (i + 1);
}
console.log(total); // Output: 6
Trong cả hai trường hợp, khối có thể truy cập và sửa đổi biến total
được xác định bên ngoài khối. Tuy nhiên, các biến được khởi tạo bên trong khối (như i
và number
) không thể truy cập được bên ngoài khối.
Các loại biến
Có ba loại biến trong JavaScript: var
, let
và const
.
- var: Khai báo một biến, tùy ý khởi tạo nó thành một giá trị. var
có phạm vi hàm, nghĩa là nó có sẵn trong toàn bộ hàm mà nó được khai báo.
var varVariable = 'I am a var variable';
- let: Khai báo một biến cục bộ trong phạm vi khối, tùy ý khởi tạo nó thành một giá trị. let
thích hợp hơn var
do phạm vi khối của nó.
let letVariable = 'I am a let variable';
- const: Khai báo một hằng số có tên chỉ đọc, có phạm vi khối. Giá trị của biến const
không thể thay đổi thông qua việc gán lại.
const constVariable = 'I am a const variable';
Ví dụ về phạm vi biến
let a = 5; // variable is initialized in the outer scope
for (let i = 0; i < 3; i++) {
// block scope with a for loop
a = 3; // a is accessible here, in an inner scope
let b = 5; // b is initialized in the inner scope
}
console.log(a); // Output: 3
console.log(b); // ReferenceError: b is not defined
Trong ví dụ này, biến a
có thể truy cập được bên trong và bên ngoài khối, trong khi b
chỉ có thể truy cập được trong khối.
Hiểu các biến, phạm vi và loại là nền tảng để viết chương trình rõ ràng và hiệu quả. Bằng cách đặt tên và sử dụng các biến một cách cẩn thận, bạn có thể tạo mã vừa có chức năng vừa dễ hiểu.