抱歉这个简单的问题。我有这个功能:
function(var1){
var myString =var1;
// myString is parsed for integers
}
是否有必要始终将参数称为字符串? e.g。
function("23")
或者我可以安全混搭吗? e.g。
function(23);
function("string with number 23");
答案 0 :(得分:1)
您可以将所需的任何数据类型传递给函数。关键是你如何使用这些论点。
答案 1 :(得分:1)
您可以混合使用 - 只要您的整数解析器设置为使用混合物。
答案 2 :(得分:1)
如果您希望数字为int,并且某种数学不能放入语音标记,您可以使用任何一种方法。
如果您确实将数字作为字符串传递,则可以使用
parseInt("string");
答案 3 :(得分:1)
是的,您可以传递不同的数据类型,因为Javascript是动态类型语言。
如果您希望根据数据类型采用不同的行为,则可以使用instanceof
。
像这样:
function f(var1) {
if(var1 instanceof String) {
// handle strings
} else if(var1 instanceof Object) {
// handle objects
} else if(var1 instanceof Date) {
// handle dates
}
}
这也可用于过滤/验证输入数据。
更新:请注意@jakeclarkson关于instanceof
和typeof
运营商之间差异的评论。
答案 4 :(得分:1)
简答:是
长答案:类型检查是JavaScript的真正难点。如果您开始尝试区分数组和对象,这只会变得更难。
我会使用Crockford的typeOf函数,可以找到here
但是,如果您只计划传递字符串或数字,则应执行以下操作:
function (var1) {
if (typeof var1 === "number"){
//treat it like a number
} else if (typeof var1 === "string") {
//try to parse it
} else {
//Its neither a string nor a number
}
}