Como verificar se uma variável é uma string em JavaScript
Olá a todos! Sou novo em JavaScript e enfrentei um problema. Tenho uma função que deve funcionar apenas com valores string. Se eu passar um número ou objeto, tudo quebra. Estou tentando verificar o tipo da variável com typeof, mas os resultados me confundem.
Aqui está um exemplo do meu código:
```javascript
function processInput(input) {
if (typeof input === 'string') {
console.log('É uma string, comprimento: ' + input.length);
} else {
console.log('Não é uma string!');
}
}
processInput('Olá'); // Funciona: "É uma string, comprimento: 3"
processInput(42); // Funciona: "Não é uma string!"
processInput(new String('Teste')); // Exibe "Não é uma string!" — mas eu esperava que fosse uma string!
processInput(null); // Exibe "Não é uma string!" — ok
processInput(undefined); // Exibe "Não é uma string!" — ok
```
O problema é que quando crio uma string com o construtor new String(), typeof retorna 'object', não 'string'. Como verificar corretamente se uma variável é uma string?