Chào mừng các bạn đến với Tập 2: Javascript - Variables trong series Learn Javascript Core
1. Variables
Ở Tập 1, mình có viết đoạn code demo in ra Hello World. Mình cố tình sử dụng biến để lưu trữ giá trị là Hello World và dùng biến đó trong console.log()
Vậy biến là gì? Giá trị của biến được lưu trữ ở đâu và tại sao chúng ta phải sử dụng biến?
Biến là gì?
Biến hiểu đơn giản là một cái tên mà bạn đặt ra để đại diện cho một giá trị
Giá trị của biến lưu trữ ở đâu?
Giá trị của biến được lưu trữ trong RAM
Hãy tưởng tượng RAM như một kệ sách với nhiều ô chứa sách, khi bạn có một quyển sách và bạn đặt nó vào một ô trong kệ sách, điều này đồng nghĩa rằng, kệ sách đã cấp cho bạn một vị trí lưu trữ và ô sách đó giữ quyển sách của bạn. Cũng như RAM, RAM có từng ô nhớ, khi bạn tạo một biến, một ô nhớ sẽ được cấp phát và lưu trữ giá trị của biến đó
Tại sao chúng ta cần dùng biến?
Sau đây là một ví dụ không sử dụng biến:
console.log('Tran Dinh Thang'.slice(0, 4));
console.log('Tran Dinh Thang'.slice(5, 9));
console.log('Tran Dinh Thang'.slice(10));
Đoạn mã trên mình dùng để in họ, tên đệm và tên chính, như bạn thấy đó, nó đã bị lặp lại và rất dài dòng
Dưới đây là đoạn mã có dùng biến:
const myName = 'Tran Dinh Thang'; console.log(myName.slice(0, 4));
console.log(myName.slice(5, 9));
console.log(myName.slice(10));
Sử dụng biến giúp tái sử dụng mã và giúp mã nguồn trong gọn gàng hơn và dễ đọc hơn
Cách khai báo biến
Có 3 cách để khai báo biến: var
, const
và let
Dùng var
để khai báo biến đã quá là xa xưa rồi, giờ các dự án đều không sử dụng nữa trừ những trường hợp bạn muốn cheat thôi. Vì vậy, mình sẽ không đề cập var
trong bài viết này
const myName = 'Tran Dinh Thang';
const birthday = '28/09/1999';
let age;
age = 24;
Quan sát ở trên bạn có nhận ra được điều gì không?
Khi nào sử dụng const
và khi nào sử dụng let
nhỉ?
Đối với const
: bạn không muốn giá trị của mình bị thay đổi trong quá trình thực thi mã lệnh
Đối với let
: giá trị của biến có thể thay đổi sau khi đã khai báo
Ví dụ trên, myName
và birthday
của mình không bao giờ thay đổi nên mình dùng const
, còn age
thì sẽ tăng dần theo từng năm nên mình để là let
Một điểm lưu ý là const
bắt buộc lúc khai báo phải gán cho một giá trị bất kỳ, let
thì có thể không cần. Và cả hai đều sẽ bị lỗi nếu đặt trùng tên biến
Phạm vi của một biến
Các bạn cần biết về phạm vi hoạt động của một biến. Bao gồm: global scope, function scope và block scope
Global scope:
- Với biến được khai báo global, bạn có thể sử dụng biến ở bất cứ đâu trong mã nguồn
- Trong Nodejs có đối tượng là global và trên browser có đối tượng là window. Nếu bạn tạo thêm thuộc tính vào hai đối tượng này thì bạn có thể truy cập ở mọi nơi trong mã nguồn
const myName = 'Tran Dinh Thang'; function logName() { console.log(myName);
};
Function scope:
- Tới bài này mình chưa giới thiệu qua Function là gì, bạn chỉ cần hiểu khái niệm Function scope là được
- Function scope là các biến được khai báo trong một function sẽ không thể được truy cập từ bên ngoài hàm
function logName() { const myName = 'Tran Dinh Thang'; // Can console.log(myName);
}; // Can't
console.log(myName);
Block scope:
- Cho tới bài viết này thì mình cũng chưa giới thiệu qua if/else hoặc for, các bạn chỉ cần nắm cách hoạt động Block scope của biến
- Block scope là biến chỉ có thể truy cập trong khối lệnh
{}
if (true) { const myName = 'Tran Dinh Thang'; // Can console.log(myName);
} // Can't
console.log(myName);
Đặt tên biến
Mỗi ngôn ngữ lập trình thường có phong cách đặt tên biến khác nhau, chẳng hạn như Python thường đặt là my_name, trong Javascript thì lại đặt là myName
Các bạn cần đặt tên biến có ý nghĩa, mục đích rõ ràng và tuân thủ theo quy tắc đặt tên mà Javascript quy định:
- Chỉ sử dụng các ký tự chữ cái, chữ số, _ hoặc $
- Bắt đầu tên biến bằng một chữ cái, _ hoặc $. Không bắt đầu bằng một chữ số
- Tên biến phân biệt chữ hoa và chữ thường
- Tránh sử dụng các từ khóa của Javascript như let, const, if, for, while,...
- Tránh sử dụng các tên biến quá ngắn hoặc quá dài
- Nên sử dụng các tiền tố. Ví dụ: isNumber, hasValue,...
Một số phong cách đặt tên biến phổ biến:
- Camel Case: myVariable, firstName, totalAmount
- Pascal Case: MyVariable, FirstName, TotalAmount
- Snake Case: my_variable, first_name, total_amount
2. Kết bài
Vậy là các bạn đã biết cách khai báo và sử dụng biến trong JS. Rất mong được sự đóng góp từ các bạn. Cảm ơn các bạn đã đọc