Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
Object.is()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since setembro de 2015.
O métodoObject.is() determina se dois valores correspondemao mesmo valor.
In this article
Sintaxe
Object.is(value1, value2);
Parâmetros
Return value
UmBoolean indicando se os dois argumentos possuem o mesmo valor ou não.
Descrição
Object.is() determina se dois valores correspondemao mesmo valor. Dois valores correspondem ao mesmo valor se uma das seguintes condições for verdadeira:
- ambos são
undefined - ambos são
null - ambos são
trueou ambos sãofalse - ambos são strings do mesmo comprimento, com os mesmos caracteres
- ambos são o mesmo objeto
- ambos são numéricos e
Issonão é o mesmo que ser igual de acordo com o operador==. O operador== aplica diversas coerções para ambos os lados (se eles não correspondem ao mesmo Tipo) antes de testar a igualdade (resultando em comportamentos como a comparação"" == false retornartrue), enquantoObject.is não realiza a coerção de nenhum dos valores.
Isso tambémnãoé o mesmo que ser igual de acordo com o operador===. O operador=== (assim como o operador==) trata os valores numéricos-0 e+0 como iguais e trataNumber.NaN como não igual aNaN.
Exemplos
Object.is("foo", "foo"); // trueObject.is(window, window); // trueObject.is("foo", "bar"); // falseObject.is([], []); // falsevar test = { a: 1 };Object.is(test, test); // trueObject.is(null, null); // true// Casos especiaisObject.is(0, -0); // falseObject.is(-0, -0); // trueObject.is(NaN, 0 / 0); // truePolyfill para navegadores que não suportam ES6
Object.is() é uma adição proposta ao padrão ECMA-262; e como tal, pode não estar presente em todos os navegadores. Você pode contornar essa situação por meio da adição do seguinte código no começo de seus scripts. Isso permitirá a você utilizarObject.is(), mesmo quando não houver suporte por parte do navegador.
if (!Object.is) { Object.is = function (x, y) { // Algoritmo para verificar se os valores sao iguais if (x === y) { // Passos 1-5, 7-10 // Passos 6.b-6.e: +0 != -0 return x !== 0 || 1 / x === 1 / y; } else { // Passo 6.a: NaN == NaN return x !== x && y !== y; } };}Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object.is> |
Compatibilidade com navegadores
Veja também
- Comparações de igualdade — uma comparação dos três recursos implementados para verificação de igualdade.