2010-07-16 31 views
8

Tôi đã nhìn thấy dấu chấm phẩy ba trong một vài biểu thức ở đây và ở đó.
Ứng dụng có bất kỳ hiệu ứng logic nào không?Ba dấu chấm phẩy trong một biểu thức javascript là gì?

Điều gần nhất tôi đã thấy để giải thích là nó cho máy nén Dean Edwards bỏ qua dòng đó.

;;; var someVar = 'Rebel'; 
+0

Vui lòng đăng một số ví dụ. Nó có thể có ý nghĩa khác nhau trong các ngữ cảnh khác nhau. – FrustratedWithFormsDesigner

+0

Mẫu mã? Tôi không tin đó là quy ước hay cú pháp đặc biệt mà tôi từng gặp. –

+0

Bạn có thể đăng một ví dụ không? Nếu tôi không nhầm, ';;;' tương đương với ';', vì một câu lệnh trống không làm gì cả. Tôi đoán ai đó đang sử dụng ';;; 'để cắt mã hoặc một cái gì đó. Ngoài ra, hãy chắc chắn rằng mã bạn đang đọc thực sự là JavaScript :-) –

Trả lời

11

Các dòng bắt đầu bằng ba dấu chấm phẩy có sẵn cho mã gỡ lỗi: nó chỉ ra rằng các dòng đó sẽ không xuất hiện trong môi trường sản xuất. Javascript được chạy qua máy nén hoặc một số thuật toán khác loại bỏ ;;; dòng khi tạo tệp JS được tối ưu hóa.

;;; console.log("only run this line when debugging!"); 

Như đã nêu ở trên, ba dấu chấm phẩy thực sự không có gì trong Javascript: nó chỉ kết thúc ba tuyên bố trống liên tiếp. Nếu nhận xét thực tế đã được sử dụng

// console.log("only run this line when debugging!"); 

thì bạn phải vào và xóa thủ công tất cả nhận xét khi bạn muốn vào chế độ gỡ lỗi, sau đó vào và đặt lại khi bạn hoàn tất. Các giải pháp khác là tạo ra một biến DEBUG và quấn tất cả các dòng debug trong một điều kiện:

var DEBUG = true; 
if(DEBUG){ 
    console.log("only run this line when debugging!"); 
} 

nhưng đây là một chút rườm rà và thực sự làm tăng đang không cần thiết để tài liệu Javascript của bạn. Tất nhiên bạn có thể chạy JS thông qua một máy nén để loại bỏ các điều kiện DEBUG, nhưng tại thời điểm đó bạn cũng có thể chỉ cần sử dụng phương pháp ;;;, đơn giản hơn.

Xem this question để biết ví dụ thực tế về điều này. BTW, tôi nghĩ cú pháp đến từ emacs.

+0

Cách để vượt qua 1k. –

+3

cách này không được bỏ phiếu nhiều hơn? – Joe

+0

có vẻ như 'grunt-contrib-uglify' sẽ không xóa mục này. – atian25

18

Không có gì. Hoàn toàn không có gì.

Ba dấu chấm phẩy, mười dấu chấm phẩy, một trăm dấu chấm phẩy, tất cả đều được diễn giải cho cùng một kết quả: không có gì.

+1

Hãy để tôi được biết đến với tư cách là người đã giúp bạn vượt qua đại diện 10K. :) – ChaosPandion

+0

@Chaos, cảm ơn anh bạn! –

+1

@Gert - Tôi cũng đo thời gian trong nano giây. :) – ChaosPandion

1

Chúng là các câu lệnh trống và không có hiệu lực. Có thể là trình thông dịch hoặc trình biên dịch sẽ loại bỏ chúng trừ khi một cú pháp được yêu cầu bởi cú pháp.

25

Điều này khiến mọi người đặt câu hỏi về StackOverflow.

Ngoài ra, nó không có gì.

8

Kết thúc câu lệnh trống 3 lần.

+0

Hmm, tôi nghĩ chúng ta chỉ biết về hai câu nói trống. Chúng tôi không biết rằng ba dấu chấm phẩy không tuân theo một tuyên bố không trống. – ghoti

+0

Trả lời theo mã OP. – Incognito

+0

Đọc của tôi về câu hỏi là mã được đăng là "Điều gần nhất [anh ta] nhìn thấy", không nhất thiết phải là một trong những ví dụ mà anh đã "nhìn thấy ... ở đây và ở đó". Mã của OP chỉ rõ ràng về hai câu lệnh trống giữa bốn dấu chấm phẩy được hiển thị. – ghoti

Các vấn đề liên quan