如何在JavaScript中检查变量是否为字符串?
大家好!我是JavaScript新手,遇到了一个问题。我有一个函数,它应该只处理字符串值。如果传入数字或对象,一切都会崩溃。我尝试使用typeof检查变量类型,但结果让我困惑。
以下是我的代码示例:
```javascript
function processInput(input) {
if (typeof input === 'string') {
console.log('这是字符串,长度:' + input.length);
} else {
console.log('这不是字符串!');
}
}
processInput('你好'); // 正常工作:"这是字符串,长度:2"
processInput(42); // 正常工作:"这不是字符串!"
processInput(new String('测试')); // 输出"这不是字符串!" — 而我期望这是一个字符串!
processInput(null); // 输出"这不是字符串!" — 没问题
processInput(undefined); // 输出"这不是字符串!" — 没问题
```
问题在于,当我通过构造函数new String()创建字符串时,typeof返回'object'而不是'string'。如何正确检查变量是否为字符串?