CHỈNH SỬA 2: Câu hỏi trên đã nhắc tôi làm xước một cơn ngứa đã làm tôi bực mình một thời gian. Sau một chút tin đồn, tôi đã đưa ra một lý do chính đáng cho các dấu phẩy hàng đầu: dễ dàng phát hiện ra dấu phẩy bị thiếu. Đây là một nguồn tiềm năng khó chịu lỗi, từ đó, chứ không phải phàn nàn, trình biên dịch sẽ chỉ cần thêm một dấu chấm phẩy, do đó thay đổi ý nghĩa khá đáng kể:
var a = foo(),
b = bar() // Oops...
c = baz(); // Ouch!
Dòng thứ ba không còn initialises một biến mới trong phạm vi hiện tại . Nó gán cho một biến hiện có trong một phạm vi bên ngoài hoặc khởi tạo một biến toàn cầu mới nếu không có một biến nào đó.
Điều này không giải thích việc sử dụng dấu phẩy hàng đầu trong JSON. Có lẽ nó chỉ được thực hiện bởi fiat.
Điều đó nói rằng, tôi vẫn ủng hộ các khai báo riêng biệt, điều này làm cho nó đơn giản và an toàn.
Tôi sẽ để nguyên vị trí của mình tại chỗ cho hậu thế.
Tôi đồng ý rằng nó xuất hiện khắp nơi. Hầu như mọi thư viện thứ hai tôi sử dụng đều sử dụng quy ước này. Thành thật mà nói, tôi không hiểu.
Tra dấu phẩy làm cho nó khó xử để nhận xét ra dòng cuối cùng của một nhóm ...
var //a = foo(), easy
b = bar(),
c = baz();
var a = foo(),
b = bar()/*, awkward
c = baz()*/;
... trong khi hàng đầu dấu phẩy làm cho nó khó xử cho cả hai dòng đầu tiên và cuối cùng ...
var /*a = foo() awkward
, */b = bar()
, c = baz();
var a = foo()
, b = bar()/* awkward
, c = baz()*/;
Đây là tiến bộ?
(Một trong những quá trình có thể giành được một điểm giá rẻ bằng cách quan sát rằng dấu chấm phẩy là không bắt buộc, nhưng điều này chỉ đạt được chẵn lẻ tại các chi phí của lảng tránh thực hành tốt nhất.)
Tệ hơn nữa, dấu phẩy hàng đầu cũng được sử dụng cho JSON. Đây là một package.json được tạo bởi Express.
{
"name": "application-name"
, "version": "0.0.1"
, "private": true
, "dependencies": {
"express": "2.5.10"
, "jade" : ">= 0.0.1"
}
}
Đây là PITA vì hầu hết các biên tập viên không thích thụt lề dòng anh chị em khác nhau. Lưu ý rằng dòng đầu tiên của một nhóm được thụt lề nhiều hơn các dòng sau.
Việc sử dụng dấu phẩy hàng đầu tấn công tôi là một ảnh hưởng vô nghĩa gây ra các sự cố mà không giải quyết bất kỳ vấn đề nào. Lập luận duy nhất tôi có thể nghĩ rằng có bất kỳ công đức nào là các dấu phẩy hàng đầu xếp hàng với nhau; không hấp dẫn lắm.
May mắn thay, CoffeeScript đang chiếm lĩnh thế giới, điều này làm cho câu hỏi được khắc phục (thậm chí nó còn trả về JSON cho cấu hình).
CHỈNH SỬA: Tôi quên đề cập đến rằng tôi không thực sự ưu tiên dấu phẩy sau cho trường hợp trên. Tôi nghĩ rằng việc tuyên bố những vars cá nhân có ý nghĩa nhất. Nó sạch sẽ, thường xuyên và làm cho nó rất dễ dàng để bình luận ra các mục cá nhân.
var a = foo();
var b = bar();
var c = baz();
Nhiều người? Bạn có số liệu/bằng chứng cụ thể nào không? – BalusC
@ BalusC: Liệu anh ấy có cần "số liệu thống kê cụ thể" để hỏi một câu hỏi như vậy không? Bất cứ ai đã dành một vài tháng trong thế giới JS đã thấy mô hình này ở đâu đó, trong một thư viện hoặc trong một mã của đồng nghiệp. –