5.1.Biến
5.1.1.Khai báo
Biến được khai báo bằng cách sử dụng từ khóa "var" theo cú pháp
vartên_biến = giá_trị;
Tuy nhiên JavaScript là một ngôn ngữ mềm dẻo nên có thể
Không cần giá trị khởi tạo.
Ví dụ: var x;
Không cần từ khóa var
Ví dụ: x = 10;
Không cần khai báo biến trước khi sử dụng.
Nếu khai báo nhiều biến trên cùng một dòng thì tách tên các biến bằng dấu phẩy
Ví dụ:var x,y,z;
5.1.2.Quy tắc đặt tên biến
Tên biến gồm các chữ cái và số nhưng phải bắt đầu bằng ký tự chữ cái ký tự gạch dưới ( _ ) hoặc ký tự $
Không bắt đầu bằng ký tự số.
Không dùng các ký tự đặc biệt như: ( , [ , { , # , & …
Không chứa khoảng trắng, tên biến phải gợi nhớ.
Không trùng với từ khoá của JavaScript
Tên biến phân biệt chữ hoa và chữ thường
5.1.3.Phạm vi của biến
Phạm vi của biến được xác định tại vị trí mà nó được khai báo trong script. Nếu khai báo một biến bên trong một hàm, biến đó được gọi là biến cục bộ, bởi vì nó chỉ được sử dụng bên trong hàm đó. Nếu khai báo một biến không nằm trong hàm nào thì có thể được coi là biến toàn cục bắt đầu từ vị trí biến được khai báo.
Có thể không sử dụng từ khóa "var" để khai báo một biến toàn cục, nhưng cần sử dụng từ khóa "var" để khai báo một biến cục bộ.
5.2.Hằng
Hằng là những giá trị cố định được thiết lập trong script. Giá trị của hằng không bị thay đổi trong quá trình thực hiện script.
Hằng được tạo bằng cách sử dụng từ khóa "const". Quy ước đặt tên cho hằng giống như cho tên biến. Hằng phải được thiết lập giá trị
Ví dụ: const code = '058';
Một hằng số không thể thay đổi giá trị qua phép gán hoặc được khai báo lại trong khi script đang thi hành. Các quy tắc về phạm vi cho các hằng số giống như cho các biến, ngoại trừ từ khóa const luôn luôn được yêu cầu, ngay cả các hằng số toàn cục. Ngoài ra không thể khai báo hằng số có tên trùng với tên hàm hoặc biến trong cùng một phạm vi, cũng không thể khai báo tên hằng trùng với các từ khóa của JavaScript
Một số từ khóa của JavaScript
abstract boolean break call case cast
catch class const continue debugger decimal default delete do double dynamic each
else enum eval extends false final
finally float for function get goto
has implements import include if in instanceof int interface internal intrinsic is
let namespace native new number null
override package parseInt parseFloat precision private protected prototype public return rounding set short standard static strict super switch
this throw to true try type
typeof unit undefined use var void
while with xml yield