Tại wtfjs, tôi nhận thấy rằng đây là javascript hợp pháp.Ký hiệu "tuple" Javascript: điểm của nó là gì?
",,," == Array((null,'cool',false,NaN,4)); // true
Đối số (null,'cool',false,NaN,4)
giống như một bộ dữ liệu đối với tôi, nhưng javascript không có bộ dữ liệu!
Một số kiểm tra nhanh trong bảng điều khiển javascript của tôi mang lại những điều sau đây.
var t = (null,'cool',false,NaN,4); // t = 4
(null,'cool',false,NaN,4) === 4; // true
(alert('hello'), 42); // shows the alert and returns 42
Nó dường như y hệt như một dấu chấm phẩy ;
danh sách tách ra các báo cáo, chỉ cần trở về giá trị của báo cáo kết quả cuối cùng.
Có một tham chiếu nào đó mô tả cú pháp này và ngữ nghĩa của nó không? Tại sao nó tồn tại, tức là khi nào nó nên được sử dụng?
Đây là toán tử dấu phẩy: http://javascriptweblog.wordpress.com/2011/04/04/the-javascript-comma-operator/ – Lepidosteus
Toán tử dấu phẩy cũng có thể được (ab) được sử dụng để chạy một loạt các hàm bên trong nhánh thứ ba, vì nó sẽ trả về kết quả của câu lệnh cuối cùng: 'var a = isTrue? (b = f (c), g (b)): (b = g (c), f (b)) '. Hiếm khi khôn ngoan, nhưng đôi khi hữu ích nếu mã rất ngắn gọn được ưa thích hơn khả năng đọc, hoặc cho các mục đích gỡ lỗi nhanh chóng. – Fx32
Đây được gọi là 'biểu thức' trong JavaScript, đây không chỉ đơn giản là tác dụng của toán tử dấu phẩy mặc dù nó đóng một phần nhỏ; Biểu thức này được giải quyết vì toán tử dấu phẩy. Bạn có thể đặt giá trị cho bất kỳ biến có thể thay đổi nào của bất kỳ biểu thức được đánh giá nào. Ngay cả khi biểu thức đó không được xác định. – Relic