Những điều thú vị của JavaScript

Tiêu đề đáng lẽ là What the fuck JavaScript, nhưng đặt tiêu đề thô thiển quá, nên chuyển qua dùng từ “thú vị”.
Trang Github tập hợp những trường hợp “lạ”, khó hiểu của JavaScript, khiến lập trình viên phải “what the f**k”

Old post:
JavaScript, với cú pháp đơn giản, đã trở thành là 1 ngôn ngữ phổ biến, đặc biệt là Front-end.
Tuy nhiên, cũng có một số lúc JavaScript khiến cho lập trình viên đi vào ngõ cụt.

Một số đoạn code được trích:

[] == ![] // -> true
[1, 2, 3] + [4, 5, 6]  // -> '1,2,34,5,6'
1 < 2 < 3 // -> true
3 > 2 > 1 // -> false
(![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]
// -> 'fail'
3 Likes

Có phải cái này là do

1 < 2 < 3
1 < 3   (1 < 2 == 1)
True
Còn 
3 > 2 > 1
1 > 1  (vì 3 > 2)
False

Không nhỉ?

3 Likes

Đúng rồi đó, true chuyển qua int là 1.
Còn trên github giải thích thế này:

1 < 2 < 3 // 1 < 2 -> true
true  < 3 // true -> 1
1     < 3 // -> true

3 > 2 > 1 // 3 > 2 -> true
true  > 1 // true -> 1
1     > 1 // -> false
1 Like

Cái này ai đọc sơ sơ phần compare của C hoặc C++ là biết cái này liền

2 Likes

Cái này là jsfuck đây mà :joy:

3 Likes

Biết là f*k nhưng đặt vô tiêu đề thô thiển quá, nên để tạm thành “thú vị”.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?