Biến ECMAScript

Vui lòng sử dụng toán tử var để khai báo biến.

Tên biến cần tuân thủ một số quy tắc đơn giản.

Khai báo biến

Trong phần trước, chúng ta đã giải thích rằng biến trong ECMAScript được định nghĩa bằng toán tử var (tóm tắt từ variable). Ví dụ:

var test = "hi";

Trong ví dụ này, đã khai báo biến test và khởi tạo nó với "hi" (chuỗi). Do ECMAScript làLoại yếudo đó trình giải thích sẽ tự động tạo một giá trị chuỗi cho testKhông cần có sự khai báo loại rõ ràng

Bạn cũng có thể định nghĩa hai hoặc nhiều biến bằng một lệnh var:

var test1 = "hi", test2 = "hello";

Mã trước đó đã định nghĩa biến test với giá trị khởi tạo "hi", và biến test2 với giá trị khởi tạo "hello".

NhưngCác biến được định nghĩa bằng cùng một lệnh var không nhất thiết phải có cùng loại,như sau:

var test = "hi", age = 25;

Ví dụ này ngoài việc (lại) định nghĩa test, còn định nghĩa age và khởi tạo nó với 25. Mặc dù test và age thuộc hai loại dữ liệu khác nhau, việc định nghĩa như vậy trong ECMAScript是完全 hợp lệ.

Khác với Java, biến trong ECMAScript khôngKhông nhất thiết phải khởi tạo(họ được khởi tạo trong hậu cảnh và sẽ được thảo luận sau này)。Vì vậy, dòng mã sau cũng là hợp lệ:

var test;

Ngoài ra, khác với Java, biếnCó thể lưu trữ các giá trị loại khác nhau。Đây là lợi thế của biến loại yếu. Ví dụ, bạn có thể khởi tạo biến với giá trị loại chuỗi, sau đó đặt nó thành giá trị số, như sau:

var test = "hi";
alert(test);
test = 55;
alert(test);

Mã này sẽ xuất ra giá trị chuỗi và số một cách không có vấn đề. Nhưng như đã đề cập trước đó, thói quen mã hóa tốt là luôn luôn lưu trữ giá trị cùng loại khi sử dụng biến.

Đặt tên biến

Tên biến cần tuân thủ hai quy tắc đơn giản:

  • Ký tự đầu tiên phải là chữ cái, dấu gạch dưới (_), hoặc ký hiệu đô la ($)
  • Các ký tự còn lại có thể là dấu gạch dưới, ký hiệu đô la hoặc bất kỳ ký tự chữ hoặc số nào

Dưới đây là các biến hợp lệ:

var test;
var $test;
var $1;
var _$te$t2;

Quy tắc đặt tên biến nổi tiếng

Chỉ vì ngữ pháp tên biến đúng, không có nghĩa là bạn nên sử dụng chúng. Tên biến cũng nên tuân thủ một trong những quy tắc đặt tên nổi tiếng sau đây:

Biểu thức loại Camel

Đầu tiên là chữ cái in thường, các chữ cái tiếp theo đều in hoa. Ví dụ:

var myTestValue = 0, mySecondValue = "hi";

Biểu thức loại Pascal

Đầu tiên là chữ cái in hoa, các chữ cái tiếp theo đều in hoa. Ví dụ:

var MyTestValue = 0, MySecondValue = "hi";

Biểu thức loại Hungary

Đính kèm một chữ cái in thường (hoặc chuỗi chữ cái in thường) trước biến có tên Pascal để chỉ ra loại biến. Ví dụ, i cho số nguyên, s cho chuỗi, như sau:

var iMyTestValue = 0, sMySecondValue = "hi";

Giáo trình này đã sử dụng các tiền tố này để làm cho mã mẫu dễ đọc hơn:

Loại Tiền tố Mô hình
Mảng a aValues
Loại bool b bFound
Loại số thập phân (số) f fValue
Hàm fn fnMethod
Loại số nguyên (số) i iValue
Đối tượng o oType
Bảng biểu thức chính quy re rePattern
Chuỗi s sValue
Biến đổi (có thể là bất kỳ loại nào) v vValue

Khai báo biến không bắt buộc

Một khía cạnh thú vị khác của ECMAScript (cũng là sự khác biệt chính với hầu hết các ngôn ngữ lập trình khác), là không cần phải khai báo biến trước khi sử dụng. Ví dụ:

var sTest = "hello ";
sTest2 = sTest + "world";
alert(sTest2);

Trong đoạn mã trên, trước tiên, sTest được khai báo là giá trị chuỗi "hello". Câu tiếp theo, sử dụng biến sTest2 để kết hợp sTest với chuỗi "world". Biến sTest2 không được định nghĩa bằng toán tử var, đây chỉ là việc chèn nó vào, như thể nó đã được khai báo.

Khi trình giải thích ECMAScript gặp các biến không được khai báo, nó sẽ tạo một biến toàn cục với tên biến đó và khởi tạo nó với giá trị được chỉ định.

Đây là lợi thế của ngôn ngữ này, nhưng nếu không theo dõi chặt chẽ các biến, việc này cũng rất nguy hiểm. Thói quen tốt nhất là như khi sử dụng các ngôn ngữ lập trình khác, luôn luôn khai báo tất cả các biến.