Tôi đang tạo thư viện và tôi thường kiểm tra kết quả của đầu ra Closure Compiler để xem nó hoạt động như thế nào (tôi có kiểm tra đơn vị, nhưng tôi vẫn muốn xem phần biên dịch mã cho các gợi ý về cách nó có thể nén tốt hơn).Hãy giải thích cách sử dụng dấu hai chấm này trong javascript
Vì vậy, tôi đã tìm thấy đoạn mã rất kỳ lạ này mà tôi chưa từng thấy trước đây.
variable : {
some();
code()
}
Lưu ý: đây là không phải là đối tượng theo nghĩa đen! Ngoài ra, không có ?
ở bất kỳ đâu có thể làm cho nó a ?:
conditional.
Mã đó nằm trong khối chức năng thông thường (an IIFE).
variable
, trong trường hợp này, là biến không xác định. Không có mã nào làm cho nó đúng, sai, hoặc bất cứ điều gì, và chỉ để đảm bảo, tôi đặt console.log
vào đó và thực sự, tôi nhận được ReferenceError
.
Xin lưu ý rằng tôi cũng kiểm tra mã của mình trong IE8, vì vậy đây không chỉ là trong các trình duyệt hiện đại. Nó có vẻ là tiêu chuẩn, javascript cũ đồng bằng.
Vì vậy, hãy thử nghiệm nó. Bắn lên giao diện điều khiển của Chrome, tôi có được điều này:
undeclaredVariable:{console.log('does this get logged?')} // yes it does.
trueValue:{console.log('what about this?')} // same thing.
falseValue:{console.log('and this?')} // same thing.
nhưng sau đó ...
(true):{console.log('does this work too?')} // SyntaxError: Unexpected token :
... và ...
so?{console.log('is this a conditional?')}:{alert(123)} // Unexpected token .
Vì vậy, nó làm gì?
thisThing:{console.log('is used to declare a variable?')}
thisThing // ReferenceError: thisThing is not defined
Xin vui lòng, tôi rất thích nếu ai đó có thể giải thích cho tôi biết mã này có nghĩa là gì hoặc ít nhất nó làm gì.
Tại sao ai đó bỏ phiếu để đóng này? –