¡Hola Juan, espero que estés bien!
Los algoritmos de igualdad en JavaScript son muy importantes para entender cómo se comparan los valores. La diferencia entre SameValue y SameValueZero radica en cómo manejan los valores NaN y -0.
SameValue compara los valores de la misma manera que lo haría el operador estricto (===), pero con una diferencia crucial: considera que NaN es igual a NaN, y -0 no es igual a +0. Por ejemplo:
Object.is(NaN, NaN); // true
Object.is(-0, +0); // false
Por otro lado, SameValueZero es similar a SameValue, pero considera que -0 es igual a +0. Por ejemplo:
Object.is(NaN, NaN); // true
Object.is(-0, +0); // true
Espero que estos ejemplos te ayuden a comprender la diferencia entre SameValue y SameValueZero. ¡Si tienes alguna otra pregunta, no dudes en preguntar!
Espero haber ayudado y buenos estudios!