Tôi đã viết JavaScript được gần mười năm rồi, nhưng mãi đến gần đây tôi mới khám phá ra toán tử dấu phẩy. Là một phần của luận án Cử nhân, tôi đã triển khai bộ phân tích luồng điều khiển cho các chương trình JavaScript. Đương nhiên, tôi phải đọc đặc tả ngôn ngữ để hiểu cách đánh giá các câu lệnh và biểu thức khác nhau, đó là nơi tôi tình cờ tìm thấy toán tử dấu phẩy
Cách sử dụng #Comma trong JavaScript
Hãy dành một chút thời gian và xem xét một số cấu trúc ngôn ngữ JavaScript có cú pháp yêu cầu chúng ta viết dấu phẩy. Chúng tôi sử dụng dấu phẩy để…
- khai báo nhiều biến cùng lúc.
5return pos++, [token = SyntaxKind.GreaterThanToken];
- liệt kê các phần tử trong mảng chữ.
6return pos++, [token = SyntaxKind.GreaterThanToken];
- thuộc tính riêng biệt của đối tượng chữ.
7return pos++, [token = SyntaxKind.GreaterThanToken];
- xác định nhiều tham số chức năng.
8return pos++, [token = SyntaxKind.GreaterThanToken];
- gọi một hàm có nhiều đối số.
9return pos++, [token = SyntaxKind.GreaterThanToken];
- hủy cấu trúc mảng.
0return pos++, [token = SyntaxKind.GreaterThanToken];
- phá hủy đối tượng.
1return pos++, [token = SyntaxKind.GreaterThanToken];
- nhập nhiều thành viên mô-đun.
2return pos++, [token = SyntaxKind.GreaterThanToken];
- xuất nhiều thành viên mô-đun.
3return pos++, [token = SyntaxKind.GreaterThanToken];
Tất cả các ví dụ trên đều đúng về mặt cú pháp và có chứa dấu phẩy, nhưng không có ví dụ nào sử dụng toán tử dấu phẩy thực tế. Vậy nhà điều hành bí ẩn mà tôi đang nói đến là gì?
#Toán tử dấu phẩy
Hóa ra tôi đã sử dụng toán tử dấu phẩy mà không biết về nó. Kiểm tra vòng lặp
return pos++, [token = SyntaxKind.GreaterThanToken];
4 saufor [var x = 0, y = 10; x