== và === trong JavaScript khác gì nhau?

Trong JavaScript, các toán tử ===== được sử dụng để so sánh giữa hai toán hạng.

Toán tử == so sánh trừu tượng (abstract equality), tức là nó thực hiện các chuyển đổi loại cần thiết trước khi so sánh đẳng thức. Cú pháp so sánh: a == b.

Còn toán tử === so sánh cân bằng nghiêm ngặt (strict equality), nghĩa là nó sẽ không thực hiện chuyển đổi loại. Do đó nếu hai giá trị không cùng loại, thì khi so sánh, kết quả sẽ trả về false. Cú pháp so sánh: a === b.

Toán tử == và === trong Javascript
Toán tử == và === trong Javascript

Ví dụ 1:

<script>
 
 // Trong chuỗi R.H.S. "3" được chuyển đổi thành
 // số 3, do đó trả về True.
 document.write(9 == "9");
 
 // sử dụng cho dòng tiếp theo
 document.write('<br>')
 
 // Ở đây không có chuyển đổi loại diễn ra,
 // do đó trả về False
 document.write(9 === "9");
 
 </script>

Đầu ra:

true
 false

Ví dụ 2:

<script>
 
 // Tại đây L.H.S. là một chuỗi trong khi
 // R.H.S. là một đối tượng chuỗi,
 // do chuyển đổi kiểu của đối tượng chuỗi thành
 // một chuỗi ký tự, nó trả về true.
 document.write("Quantrimang" == new String("Quantrimang"));
 
 // sử dụng cho dòng tiếp theo
 document.write('<br>')
 
 // Không có chuyển đổi kiểu
 document.write("Quantrimang" === new String("Quantrimang"));
 
 </script>

Đầu ra:

true
 false

Ví dụ 3:

<script>
 
 // Ở đây số 1 được chuyển đổi thành true (kiểu boolean)
 // vì trong javascript true là 1 và false là 0
 // do đó nó trả về true.
 document.write(true == '1');
 
 // dùng cho dòng tiếp theo
 document.write('<br>')
 
 // Không có chuyển đổi kiểu
 document.write(true === '1');
 
 </script>

Đầu ra:

true
 false

Nói chung, toán tử === được khuyến nghị vì nó không bao giờ thực hiện chuyển đổi loại khi thực hiện so sánh do đó luôn tạo ra kết quả chính xác.

Bạn đọc có thể tìm hiểu thêm về các toán tử khác trong bài viết: Toán tử trong JavaScript.

Xem thêm:

Thứ Năm, 13/02/2020 14:11
52 👨 196