如何检查var是否是JavaScript中的字符串
How can I check if a var is a string in JavaScript?
如何在JavaScript中检查var是否为字符串?
我试过了,但没用。。。
var a_string = "Hello, I'm a string.";
if (a_string typeof 'string') {
// this is a string
}
你很接近:
if (typeof a_string === 'string') {
// this is a string
}
请注意:如果使用new String('hello')
创建字符串,则上述检查将不起作用,因为类型将改为Object
。有复杂的解决方案可以解决这个问题,但最好永远避免以这种方式创建字符串。
typeof
运算符不是中缀(因此示例中的LHS没有意义)。
你需要像这样使用它…
if (typeof a_string == 'string') {
// This is a string.
}
请记住,typeof
是一个运算符,而不是一个函数。尽管如此,你还是会看到typeof(var)
在野外被大量使用。这和var a = 4 + (1)
一样有意义。
此外,您还可以使用==
(相等比较运算符),因为两个操作数都是String
s(typeof
总是返回String
),所以JavaScript被定义为执行与我使用===
(严格比较运算符)相同的步骤。
正如Box9提到的,这不会检测到实例化的String
对象。
你可以用…来检测。。。。
var isString = str instanceof String;
jsFiddle。
或
var isString = str.constructor == String;
jsFiddle。
但是这在多window
环境中不起作用(想想iframe
s)。
你可以通过。。。
var isString = Object.prototype.toString.call(str) == '[object String]';
jsFiddle。
但是,(正如Box9所提到的),您最好只使用字面String
格式,例如var str = 'I am a string';
。
进一步阅读。
结合前面的答案可以提供以下解决方案:
if (typeof str == 'string' || str instanceof String)
或
Object.prototype.toString.call(str) == '[object String]'
以下表达式返回true:
'qwe'.constructor === String
以下表达式返回true:
typeof 'qwe' === 'string'
以下表达式返回false(原文如此!):
typeof new String('qwe') === 'string'
以下表达式返回true:
typeof new String('qwe').valueOf() === 'string'
最佳和正确的方式(imho):
if (someVariable.constructor === String) {
...
}
现在我认为最好使用typeof()的函数形式,所以…
if(filename === undefined || typeof(filename) !== "string" || filename === "") {
console.log("no filename aborted.");
return;
}
在所有情况下检查是否为null或未定义a_string
if (a_string && typeof a_string === 'string') {
// this is a string and it is not null or undefined.
}
相关文章:
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 是否可以测试javascript函数是否是构造函数
- 我需要帮助理解javascript||.这是一个逻辑'或者'是否
- javascript测试一个值是否是一个数字和一个大于0的数字
- 如何检查一个对象是否是“;子对象“;在Javascript中
- 基于 html5 数据属性值创建 JavaScript 对象是否是一种好的做法
- 如何在 Javascript 中检查变量是否是数组(noesis.Javascript)嵌入在C#中
- 我想比较一个值是否是“不可用”的javascript
- 检查数字是否在 JavaScript 中是偶数
- 查找一个对象是否是 javascript 中另一个对象的子集
- 给定一个日期/时间字符串,w javascript/jquery,你怎么能确定它是否是今天
- 函数是否是 JavaScript 对象属性的有效键
- Javascript 是否处理整数溢出和下溢?如果是,如何
- 如何在 Rhino 中检查对象是否是 JavaScript 对象
- 如何在 Javascript/Node 中测试 B 是否是 A 的“子类”
- 如何检查新克隆的节点是否是javascript中的最后一个节点
- 如果元素是唯一的,使用 javascript 更改 ID 是否是一种可以的做法
- 是否可以在JavaScript(不是jQuery)中获取与DOM元素关联的事件?
- 我如何修改这个JavaScript正则表达式来检查字符串是否是一个最多必须有2个十进制数字的数字
- 如何判断一个JavaScript变量是否是对另一个变量的引用