Cảm ơn bạn!
Object.is() trong Javascript là gì?
JavaScript cung cấp cho chúng ta 3 kiểu so sánh giá trị là:
===
: strict equality==
: loose equalityObject.is
Với so sánh ===
và ==
, các bạn có lẽ cũng đã quen thuộc khi học JavaScript, chúng được sử dụng nhiều trong các bài toán của chúng ta 😁. Hôm nay chúng ta sẽ tìm hiểu về method Object.is
xem nó có gì khác với hai so sánh còn lại không nhé ^^.
Object.is()
Object.is()
cũng như các so sánh khác, chúng được sử dụng để so sánh hai giá trị. Kết quả là một giá trị Boolean
(true, false).
Để sử dụng method này thì ta chỉ cần truyền 2 giá trị muốn so sánh vào method. Ví dụ: Object.is(12, -12) => false
.
Khi so sánh Object.is()
với ===
thì chúng có kết quả khi so sánh hai giá trị khá giống nhau, tuy nhiên cả hai sử dụng các thuật toán so sánh khác nhau. Với Object.is()
sử dụng The SameValue Algorithm, còn ===
sử dụng The Strict Equality Comparison Algorithm.
Cách xử lý cả hai khác nhau khi so sánh các special numeric values
như NaN
, -0
và +0
.
Ví dụ khi so sánh sử dụng Object.is()
:
// Trả về kết quả so sánh giống với "==="
Object.is(10, 10); // true
Object.is('homiedev.com', 'homiedev.com'); // true
Object.is('Trang', 'trang'); // false
Object.is(null, null); // true
Object.is(undefined, undefined); // true
Object.is(["wow"], ["wow"]); // false
// Signed zero
Object.is(0, -0); // false
0 === -0 // true
Object.is(+0, -0); // false
+0 === -0 // true
Object.is(-0, -0); // true
-0 === -0 // true
Object.is(0n, -0n); // true
0n === -0n // true
// NaN
Object.is(NaN, 0/0); // true
NaN === 0/0 // false
Object.is(NaN, Number.NaN) // true
NaN === Number.Nan // false
Object.is(NaN, NaN) // true
NaN === NaN // false
Khi nào nên sử dụng Object.is()?
Như ở ví dụ trên ta đã thấy điểm khác biệt giữa Object.is()
và ===
. Trong hầu hết các trường hợp, toán tử ===
là một cách tốt để chúng ta so sánh các giá trị.
Nếu các bạn muốn coi các giá trị NaN
là giống nhau(return true
) hoặc phân biệt chặt chẽ hơn giữa các số âm và dương(+0, -0), thì chúng ta có thể sử dụng Object.is()
trong trường hợp này 😅.
Kết luận
Hy vọng bài viết sẽ giúp các bạn hiểu hơn về Object.is()
trong JavaScript. Chúng ta sẽ gặp lại nhau trong các bài viết sắp tới nhé.
Cảm ơn các bạn đã đọc bài viết.