2014-11-11 18 views

Trả lời

11

Trong trường hợp cũ, không rõ ràng với trình phân tích cú pháp rằng {} là giá trị.

Các công trình sau đây:

var a = {}; 
a == false  // false 

Hoặc cách khác bạn có thể sử dụng:

({}) == false // false 

Vì vậy, đây không phải là bất cứ điều gì cụ thể để so sánh giá trị - đúng hơn, đó là cách mã được phân tách.

Câu hỏi hay!

3

Nếu bạn chỉ chạy {}, bạn thấy rằng nó không được phân tích cú pháp dưới dạng đối tượng - nó cung cấp undefined! Rõ ràng, nó đang được phân tích cú pháp như một khối mã. Do đó, {} == false là lỗi cú pháp, vì không có gì ở bên trái của ==.

{}variableName cũng không phải là lỗi cú pháp vì cùng một lý do - đó là một khối mã trống.

Nếu bạn quấn nó trong dấu ngoặc đơn, nó được phân tích cú pháp chính xác dưới dạng đối tượng theo nghĩa đen và hoạt động.

({}) == false 
0

Ngay cả các công trình này,

/{}/ == false; // false 
+0

Làm sao bạn trả lời sau khi nó đã được đóng cửa như là một bản sao ?? – Scimonster

+0

Tôi không thấy, sau khi đăng bài chỉ, tôi thấy nó là trùng lặp. Xin lỗi –

+0

Ý tôi là, về mặt kỹ thuật, nó cho phép bạn như thế nào? – Scimonster

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