Como comparar duas strings em javascript

In this short JS tutorial, you’ll learn how to compare strings and see code examples.

Strict equality

To determine whether the strings are equal, you can use the strict equality operator ===. It returns false if the strings are different and true, if they’re the same

const s1 = 'learn'; const s2 = 'today'; console.log(s1 === 'learn'); // true console.log(s1 === s2); // false

Comparing the strings using strict equality === always analyzes the case of the letters, meaning that capital letters are different from the small ones.

const s1 = 'javascript'; const s2 = 'Javascript'; console.log(s1 === s2); // false

Case-insensitive string comparison

If you want to do case insensitive comparison of the strings in JavaScript, you can turn both strings to lowercase and compare them using strict equality operator afterwards.

const s1 = 'javascript'; const s2 = 'Javascript'; console.log(s1.toLowerCase() === s2.toLowerCase()); // true

Comparing the length of JavaScript strings

If you need to find which of two strings is longer, then the operators “greater than” and “lower than” won’t suit you well. They compare the characters of a string in alphanumeric order one by one and consider the length of the strings in the very end.

const s1 = 'javascript'; const s2 = 'node.js'; console.log(s1 > s2); // false

In JS, every string has the length property. By comparing the value of this property in different strings, we’ll get to know which of them is longer.

const s1 = 'javascript'; const s2 = 'node.js'; console.log(s1.length > s2.length); // true

Check if a string contains another string

To check if one string is a substring of another one in JavaScript, there’s a built-in function includes. Remember, the function contains exists in Java, but in JavaScript, it’s deprecated and replaced by includes.

const s1 = 'javascript'; const s2 = 'python'; console.log(s1.includes('script')); // true console.log(s2.includes('script')); // false console.log(s1.contains('java')) // ERROR! .contains is not a function

Read more JavaScript tutorials or Learn Full-Stack JS from scratch!

English version: //www.javascripttutorial.net/javascript-comparison-operators/

Para comparar dois valores usamos os operadores de comparação (comparison operators). Confira abaixo uma tabela que mostra os operadores de comparação do JavaScript.

Um operador de comparação retorna um valor Booleano (Boolean) indicando que a comparação é verdadeira (true) ou falsa (false). Veja o exemplo abaixo:

O operador de comparação aceita pelo menos dois valores (ou operandos). Se um dos valores for de um tipo diferente, o JavaScript executará uma conversão com base em regras específicas antes de efetuar a comparação. Vamos abordar cada regra de forma detalhada em tutoriais seguintes.

Comparando Números

Se os operandos (valores a serem comparados) forem números, o JavaScript fará uma comparação numérica. Por Exemplo:

Se os operadores for em números, o Java script faça uma comparação numérica. Por exemplo:

Este exemplo é direto. O valor da variável a é 10 e da variável b é 20.

A expressão a >= b significa a seguinte pergunta: O valor da variável a é maior ou igual que o valor da variável b?. Como resposta o JavaScript retorna false (falso).

E a expressão a == 10 (o valor de da variável a é igual ao número 10?) retorna como resposta true (verdadeiro).

Comparando strings (sequências de caracteres)

Se os operandos (valores) forem strings (sequencias de caracteres), o JavaScript comparará os códigos numéricos de cada caractere da string (um por um).

Como JavaScript compara códigos de caracteres numericamente em sequência, você pode receber um resultado inesperado, por exemplo:

Nesse exemplo, f2 é menor que f1 porque a letra B tem o código de caractere 66 enquanto a letra a tem o código de caractere 97.

Para corrigir isso, você deve primeiro converter as strings em um formato comum, pode ser todas as letras em minúsculas ou maiúsculas e então fazer a comparação como a seguir:

Observe que toLowerCase() é um método do objeto String que converte a string em letras minúsculas.

Comparando um número com um valor de outro tipo

Um operando (um dos valores a ser comparado) é um número enquanto o outro não é, o JavaScript converte o operando não numérico em um número e executa a comparação numericamente.

Nesse exemplo acima, a string '20' é convertida para 20 e comparada com o número 10.

Outro exemplo:

Nesse exemplo, o JavaScript converte a string '10' (que está do lado direito) em um número 10 e compara o resultado da conversão com o número 10 que está no lado esquerdo, trazendo true como resultado da comparação.

Comparando um Objeto com algo que não é um Objeto

Se um operando (um dos valores a ser comparado com outro) é um Objeto, o JavaScript chama o método valueOf() desse objeto para pegar um valor a ser comparado. Se o objeto não tiver o método valueOf(), o JavaScript então chama o método toString() e usa o valor retornado para comparação.

Veja o exemplo a seguir:

Na primeira comparação o objeto apple possui o método valueOf() que retorna 10, portanto o JavaScript usa o valor 10 para a comparação.

Na segunda comparação o objeto chama primeiro o método valueOf(). No entanto, o objeto orange não possui o método valueOf() então o JavaScript chama o método toString() para obter o valor retornado 20.

Comparando um Booleano com outro valor

Se um operando é um Booleano, o JavaScript converte ele em um número e compara o valor convertido com o outro operando, o true será convertido em 1 e o false será convertido em 0.

As regras acima, também valem para os operadores de igual == e de diferente !=.

Comparando null e undefined

No JavaScript, null é igual a undefined. Isso significa que a expressão a seguir retorna true.

Comparando NaN com outros valores

Se um dos operadores é um NaN a comparação usando o operador de igualdade == sempre vai retornar false.

Mesmo comparando NaN com outro NaN:

O operador de diferente != retorna true ao comparar o NaN com outro valor:

E também:

Estritamente igual (===) e Estritamente diferente (!==)

Além dos operadores de comparação vistos acima, o JavaScript fornece os operadores estritamente igual === e o estritamente diferente !==.

Os operadores estritamente iguais e estritamente diferentes se comportam como o operador igual e diferente (não igual), exceto que eles não convertem o operando antes da comparação.

Na primeira comparação, usamos o operador de igualdade, o JavaScript converte a sequencia em números e realiza a comparação.

Na segunda comparação, usamos o operador de estritamente igual === e o JavaScript não converte a string para fazer a comparação, resultando em false.

Nesse tutorial você aprendeu como usar os operadores de comparação JavaScript para comparar valores.

Veja o índice de todos os tutoriais JavaScript

Confira uma série de outros tutoriais JavaScript que eu escrevi, clicando no link abaixo:

Postingan terbaru

LIHAT SEMUA