In terms of comparison, JavaScript always sees a numeric string as a number. In your case, the number 2 is seen as a value to be compared, no matter if it is a string or not.
Except in cases of math operations, JavaScript will consider the type in case of summation, because of the +
sign that is also used in concatenation. Example:
pessoa = {
nome: 'leandro',
idade: '2'
}
console.log(pessoa.idade+1); // imprime 21
To add the value it would be necessary to convert the string to number using, for example, parseInt()
:
pessoa = {
nome: 'leandro',
idade: '2'
}
console.log(parseInt(pessoa.idade)+1); // imprime 3
In case of subtractions, divisions and multiplications, the value will be considered an absolute number:
pessoa = {
nome: 'leandro',
idade: '2. '
}
console.log(pessoa.idade-1); // subtração: imprime 1
console.log(pessoa.idade/2); // divisão: imprime 1
console.log(pessoa.idade*3); // multiplicação: imprime 6
I see that the value in idade
I put a period and several spaces. JavaScript will convert the string value to absolute value. As the decimal separator is the point and the spaces are ignored, the absolute value of the string will be only 2
.