在JavaScript中,我想编写一个函数来确定传入的两个变量是否具有相同的数据类型,例如字符串,整数,布尔等。但是,我不知道如何比较这两个变量在数据类型方面,而不是存储在变量中的VALUES。
提前谢谢=)
答案 0 :(得分:3)
您可以按照建议使用typeof
,但这并不完美;数组和Date实例都将被视为“object”类型。
按类型比较的另一种不完美的方法是:
function sameTypes() {
var tp = null, ts = Object.prototype.toString;
if (arguments.length === 0) return true; // or false if you prefer
tp = ts.call(arguments[0]);
for (var i = 1; i < arguments.length; ++i)
if (tp !== ts.call(arguments[i])) return false;
return true;
}
如果在Object原型上调用“toString”函数的结果对所有函数都相同,那么你可以将该函数传递两个或更多(一个或多个我猜)值并返回true
他们。这个不完美,因为它将原语提升为对象,因此字符串常量似乎与String实例具有相同的类型。
答案 1 :(得分:1)
您可以使用typeof
运算符查找变量的数据类型。因此,要测试相同类型的两个变量(不一定是相同的值),可以使用
if(typeof a == typeof b) { /* same type */ }
答案 2 :(得分:0)
您正在寻找typeof。
答案 3 :(得分:0)
使用typeof()
var test = true,
test2 = "string";
if (typeof(test) === typeof(test2)) {}