== 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ứ Ba, 11/02/2020 16:48
4,85 👨 25.898
0 Bình luận
Sắp xếp theo