Javascript 检查参数是否为字符串
我有一个JavaScript函数,它使用Javascript 检查参数是否为字符串,javascript,jquery,variable-types,Javascript,Jquery,Variable Types,我有一个JavaScript函数,它使用document.getElementById()。我想将它升级为能够使用jQuery选择器($(this).parent().find(“blah”)),但是它需要能够使用原始方法以实现向后兼容性。是否有一种方法可以测试传递给函数的参数是字符串(因此我可以使用getElementById)还是jQuery对象(不是字符串) 我可以使用.length,但这是确定参数是否为字符串的故障保护方法吗 只要我可以测试字符串,jQuery分支就可以进入一个else—
document.getElementById()
。我想将它升级为能够使用jQuery选择器($(this).parent().find(“blah”)
),但是它需要能够使用原始方法以实现向后兼容性。是否有一种方法可以测试传递给函数的参数是字符串(因此我可以使用getElementById
)还是jQuery对象(不是字符串)
我可以使用.length
,但这是确定参数是否为字符串的故障保护方法吗
只要我可以测试字符串,jQuery分支就可以进入一个else
——我不需要绝对确保它不是字符串,尽管如果它也是jQuery,测试它会很好
谢谢
詹姆斯我想你要找的就是instanceOf。请看这篇文章:我想instanceOf就是您要找的。请参阅本文:以下代码返回true:
"somestring".constructor == String
以下代码返回true:
"somestring".constructor == String
这就是你想要的吗
var str = "blah";
if (typeof str == "string") {
} else {
}
而且
length
绝对不是一个好办法。数组也会有一个长度属性,更不用说任何自定义对象了。这就是你想要的吗
var str = "blah";
if (typeof str == "string") {
} else {
}
而且
length
绝对不是一个好办法。数组也将有一个length属性,更不用说任何自定义对象了。JavaScript有两种字符串。这检查了这两种情况
function isString (str)
{
return str instanceof String || typeof str === 'string';
}
如果参数未声明,这将始终抛出一个
ReferenceError
,尽管typeof
不会抛出错误,因为JavaScript从左到右求值(请参见)。JavaScript有两种字符串。这检查了这两种情况
function isString (str)
{
return str instanceof String || typeof str === 'string';
}
如果参数未声明,这将始终抛出一个
ReferenceError
,尽管typeof
不会抛出错误,因为JavaScript从左到右求值(请参见)。这只适用于转换为对象的字符串,例如通过新字符串(“测试”)
,非原语。这仅适用于转换为对象的字符串,例如通过新字符串(“测试”)
,不是原语。+1告诉我不要使用.length
-谢谢你的建议:-)+1告诉我不要使用.length
-谢谢你的建议:-)+1比我的答案好,因为这也适用于转换为对象的字符串。+1比我的答案好,因为这也适用于转换为对象的字符串。谢谢:-)我试过了除旋流器的回答有点问题。不过你的答案很好。谢谢你的回答,你能评论一下这与使用typeof相比有什么不同吗?@pure_code很好的解释谢谢:-)我试过了decyclone的答案,但有点麻烦。不过你的答案很好。谢谢你的回答,你能评论一下这与使用typeof相比有什么不同吗?@pure\u代码很好的解释