Cómo verificar si una variable es un string en JavaScript
¡Hola a todos! Soy nuevo en JavaScript y me encontré con un problema. Tengo una función que debería funcionar solo con valores string. Si paso un número o un objeto, todo se rompe. Estoy intentando verificar el tipo de variable con typeof, pero los resultados me confunden.
Aquí hay un ejemplo de mi código:
```javascript
function processInput(input) {
if (typeof input === 'string') {
console.log('Es un string, longitud: ' + input.length);
} else {
console.log('¡No es un string!');
}
}
processInput('Hola'); // Funciona: "Es un string, longitud: 4"
processInput(42); // Funciona: "¡No es un string!"
processInput(new String('Test')); // Muestra "¡No es un string!" — ¡y esperaba que fuera un string!
processInput(null); // Muestra "¡No es un string!" — ok
processInput(undefined); // Muestra "¡No es un string!" — ok
```
El problema es que cuando creo un string mediante el constructor new String(), typeof devuelve 'object', no 'string'. ¿Cómo verificar correctamente si una variable es un string?