thể trùng lặp:
Can you explain why ++[[]][+[]]+[+[]] = 10mảng JavaScript lên vị trí số
Tôi đang tự hỏi cái gì đó cho vài ngày ... Tôi biết rằng toán tử cộng chỉ trong JavaScript đầu tiên chuyển đổi nó là toán hạng để Số. Tôi đang áp dụng + để một mảng trống rỗng và tôi nhận được kết quả sau:
+[] == 0
Khi tôi làm điều này:
+[1] == 1
Nhưng:
+[1,2] == NaN
Hai điều cuối cùng hầu như rõ ràng nhưng tại sao mảng trống là 0 ?! Đây có phải là kết nối với:
[] == false
Một số lần ECMAScript khiến tôi tự hỏi rất nhiều ...
alert([![]+[]][+[]][+[]]+[![]+[]][+[]][+!+[]]+[!+[]+[]][+![]][+![]]+[![]+[]][+[]][+!+[]]+[![]+[]][+[]][+!+[]+!+[]]+' '+(![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]);
Trân trọng!
http://stackoverflow.com/questions/7202157/can-you-explain-why-10/7202287#7202287 ở cuối, tôi đã đăng giải thích cho '+ [] === 0'. – pimvdb
@pimvdb Đó chỉ là bệnh ... câu trả lời tuyệt vời mặc dù. –
Cảm ơn bạn! Câu trả lời chính xác! –