Trong JavaScript, tại sao biểu thức bên dưới lại bằng false?
0.2 + 0.4 == '0.6'

Tại vì Node.js runtime (và JavaScript nói chung) đều sử dụng số học dấu phẩy động[1] khi thực hiện các phép tính toán.

Và trong ví dụ trên như các bạn thấy, kết quả của 0,2 + 0,4 sẽ không bằng 0.6, mà nó sẽ thực sự sẽ bằng 0.6000000000000001.

Do đó, biểu thức trên được đánh giá là sai.

Mình nghĩ là do bạn đang so sánh giữa kiểu dữ liệu là Number với kiểu dữ liệu là String nên kết quả mới bằng false.

Không bạn nhé, trong trường hợp này mình đang sử dụng 2[2] dấu bằng thay vì là 3 dấu bằng, cho nên đó không phải là vấn đề dẫn tới kết quả bằng false.


  1. https://en.wikipedia.org/wiki/Floating-point_arithmetic ↩︎

  2. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#A_model_for_understanding_equality_comparisons ↩︎