Avatar ·

如何在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'。如何正确检查变量是否为字符串?