This article is currently in the process of being translated into Vietnamese (~99% done).
Basic JavaScript syntax
Nếu bạn đã có kinh nghiệm với bất kỳ ngôn ngữ lập trình phổ biến như C++, C++, Java, C# hoặc PHP, bạn có thể đã nhận ra cú pháp JavaScript. Lý do là tất cả các ngôn ngữ lập trình đều bắt nguồn từ hoặc chịu ảnh hưởng của ngôn ngữ C. Tuy nhiên, nếu bạn chưa từng có kinh nghiệm với các ngôn ngữ kia, hoặc thậm chí là chưa lập trình tất cả chúng, hãy cho phép tôi giới thiệu nhanh với bạn về cú pháp lập trình của JavaScript.
Hãy bắt đầu với một quy tắc rất cơ bản, điều này có thể gây nhầm lẫn nếu bạn là người hoàn toàn mới làm quen với lập trình:
JavaScript phân biệt chữ hoa, chữ thường
Điều này có nghĩa là a sẽ không giống với A - để tôi cho bạn xem một ví dụ:
var a = 42;
alert(A);
Ở đây tôi có khai báo một biến (sẽ nói thêm về biến ở phần sau) với tên a (viết thường), nhưng ở dòng tiếp theo, tôi đã thử sử dụng nó bằng một tham chiếu đến A (viết hoa). Điều này sẽ dẫn đến lỗi bởi vì tôi không sử dụng cùng một biến (tên)
Câu lệnh
Về cơ bản, câu lệnh sẽ là một dòng mã:
alert("Hello, world!");
Lưu ý cách tôi kết thúc câu lệnh bằng dấu chấm phẩy (;) - điều này sẽ thông báo cho trình biên dịch rằng câu lệnh đã kết thúc. Điều này nghĩa là mặc dù câu lệnh thường là một dòng mã, nhưng về mặt vật lý, nó không nhất thiết phải nằm trong một dòng. Bạn có thể thoải mái viết xuống nhiều dòng, miễn sao bạn phải kết thúc bằng dấu chấm phẩy:
var s = "Hello world and welcome to this very long
piece of text, which uses multiple lines!";
Xin hãy lưu ý rằng trong một số ngôn ngữ lập trình theo phong cách C sẽ rất nghiêm ngặt về việc yêu cầu dấu chấm phẩy để kết thúc câu lệnh, thì JavaScript lại không như vậy - nó sẽ cố gắng đoán xem câu lệnh của bạn đã kết thúc khi đến đoạn xuống dòng hay không và điều này sẽ hiệu quả trong nhiều trường hợp. Sau đây là một ví dụ:
var s = "Hello, world"
var n = 42
Tuy nhiên, đôi khi trình thông dịch sẽ không hiểu ý định của bạn, nếu dòng mã quá phức tạp, và sau đó bạn sẽ cần phải thêm dấu chấm phẩy. Vì lý do này, các hướng dẫn viết mã JavaScript khuyến khích bạn nên luôn sử dụng dấu chấm phẩy để kết thúc câu lệnh - theo cách đó, bạn sẽ không quên nó trong các trường hợp thực sự cần nó. Nó cũng tạo thói quen cho bạn khi chuyển qua các ngôn ngữ nghiêm ngặt hơn về sau này.
Khối lệnh
Khi sử dụng các cấu trúc điều khiển như câu lệnh IF và vòng lặp, bạn cần kiểm soát dòng mã nào sẽ nằm trong cấu trúc điều khiển. Theo mặc định, JavaScript cho rằng chỉ có dòng tiếp theo là một phần của cấu trúc điều khiển của bạn. Ví dụ:
var b = false;
if(b == true)
alert("This will not happen...");
alert("This WILL happen!");
Nếu bạn chạy mã bên trên, bạn sẽ thấy rằng chỉ có Aler() thứ hai được chạy. Lý do là câu lệnh if() sẽ không bao giờ đúng (chúng ta đã chắc chắn điều đó), vì vậy dòng tiếp theo sẽ không bao giờ được chạy. Tuy nhiên, nếu bạn cần nhiều hơn một dòng mã nằm trong câu lệnh if, bạn sẽ cần tạo ra một khối. Chúng ta sử dụng dấu ngoặc nhọn để gom các dòng mã mà chúng ta muốn chúng sẽ thực hiện bởi câu lệnh if:
var b = false;
if(b == true)
{
alert("This will not happen...");
alert("This won't happen either...");
}
alert("This WILL happen!");
Lưu ý cách dùng trong ví dụ này, cũng như trong ví dụ trên, tôi đã thụt lề dòng tiếp theo sau câu lệnh if (ví dụ đầu tiên), cũng như bên trong khối (ví dụ thứ hai). Điều này là không bắt buộc, nhưng hầu hết các lập trình viên đều làm nó, vì nó sẽ làm đoạn mã dễ đọc hơn. Bạn có thể thụt lề dòng, hoặc thậm chí nhiều dòng, bằng cách sử dụng phím Tab. Và nếu bạn có một khối bên trong một khối (và nhiều hơn nữa), bạn có thể tiếp tục thụt lề cho các khối bên trong một các thích hợp - một thụt lề cho mỗi khối, ví dụ như này:
let a = 1, b = 2, c = 3;
if(a == 1)
{
if(b == 2)
{
if(c == 3)
document.write("ok!");
}
}
Khối được sử dụng rất nhiều trong JavaScript, ví dụ như đối với các cấu trúc điều khiển như trong ví dụ trên, nhưng cũng được sử dụng khi định nghĩa hàm. Chúng ta sẽ tìm hiểu điều đó sau.
Chú thích
Theo mặc định, mọi thứ bạn viết trong mã JavaScript, ngoại trừ khoảng trắng, sẽ được biên dịch và do đó sẽ phải là mã JavaScript hợp lệ. Tuy nhiên, đôi khi bạn cần để lại chú thích/chú giải, cho bản thân hoặc nhóm của bạn để hiểu được mã đó. Nêu trình thông dịch gặp phải hai dấu gạch chéo (//) thì phần còn lại của dòng sẽ được bỏ qua:
// This line is a comment
Bạn cũng có thể thực hiện điều này trên cùng một dòng với câu lệnh, miễn sao bạn phải nhớ rằng tất cả nội dung sau 2 dấu gạch chéo (//) sẽ được trình thông dịch bỏ qua:
alert("Hello!"); // The rest of this line is a comment
Bạn cũng có thể có nhiều dòng chú thích như thế này:
// This line is a comment
// ...so is this one
Nhưng nếu bạn cần nhiều dòng chú thích và bạn không muốn thêm dấu gạch chéo (//) cho mỗi dòng, bạn có thể sử dụng cú pháp chú thích nhiều dòng. Nó bắt đầu bằng một dấu gạch chéo (/), ngay sau đó là một dấu hoa thị (*). Sau hai dấu này thì mọi thứ được coi là chú thích, cho đến khi bạn thoát khỏi chế độ chú thích bằng cách vẫn sử dụng hai dấu ở trên nhưng theo chiều ngược lại (nghĩa là dấu hoa thị (*) ở trước và dấu gạch chéo (/) ở sau). Ví dụ:
/*
All of these lines are comments
and you can write whatever you want,
formatted however you want it!
*/
Đơn giản là chuyển đổi giữa hai kiểu chú thích theo sở thích của bạn.
Tóm tắt
Đây là phần giới thiệu nhanh về cú pháp của JavaScript, hi vọng sẽ giúp bạn hiểu được các ví dụ trong các phần sau của hướng dẫn này. Tất nhiên, vẫn còn rất nhiều cú pháp khác mà bạn cần học, nhưng chúng ta sẽ tìm hiểu chúng và các phần sau khi chúng ta học thêm các khía cạch khác của ngôn ngữ này.