Computer >> Máy Tính >  >> Lập trình >> Javascript

Tại sao trong JavaScript, “if ('0' ==false)” bằng false trong khi nó cho đúng trong câu lệnh “if (0)”?


Hãy xem từng điều kiện một -

if(‘0’ == false)

Nó tuân theo quy tắc sau -

If Type(y) is Boolean, return the result of the comparison x == ToNumber(y)

Kiểu ép buộc ==không. Điều này có nghĩa là một chuyển đổi kiểu rõ ràng được yêu cầu để khớp với kiểu của hai toán hạng. Bên trái '0' được chuyển thành số 0. Khi so sánh hai số, và vì 0 bằng 0 nên kết quả là đúng. Trong trường hợp này, điều này không hoạt động vì nó không ngụ ý về tính chất trung thực / giả dối của chuỗi '0', vì nó đã bị cưỡng chế trước khi được so sánh.

if (0)

Điều này kiểm tra chuỗi là null hay rỗng, không phải là số 0 hay không. Luôn nhớ rằng, một chuỗi không rỗng là đúng. Không có kiểu ép buộc nào được sử dụng ở đây vì các chuỗi có thể được đánh giá là thật hoặc giả dựa trên giá trị của chúng.