如何检查变量是否为字符串(string)在 JavaScript 中?
大家好!我刚开始学习 JavaScript,遇到了一个问题。我有一个函数,它接受某个参数,我需要确保它确实是一个字符串,而不是数字、数组或其他类型。我尝试使用 `typeof`,但它有时会返回奇怪的结果。
以下是我的代码示例:
```javascript
function processInput(input) {
if (typeof input === 'string') {
console.log('这是字符串!');
} else {
console.log('这不是字符串');
}
}
processInput('你好'); // 有效
processInput(123); // 有效
processInput(new String('测试')); // 显示“这不是字符串”,尽管我期望是字符串
```
在最后一个例子中,我传递了对象 `new String('测试')`,我的代码将其判断为非字符串。但这其实也是字符串,只是被包装成了对象!如何正确检查?是否需要考虑这种情况?
另外,我听说 `typeof null` 有一些陷阱,它返回 `"object"`。那么如果变量是