javascript中查看变量类型的几种方法
javascript中查看变量类型的几种方法
·
1,使用typeof运算符来查看一个变量的类型,例如:
var str = "Hello World";
console.log(typeof str); // 输出 "string"var num = 123;
console.log(typeof num); // 输出 "number"var bool = true;
console.log(typeof bool); // 输出 "boolean"var arr = [1, "two", false];
console.log(typeof arr); // 输出 "object"
如果要查看数组或对象中成员的类型,可以使用Array.isArray()方法判断是否是数组,并循环遍历数组或对象中的成员进行类型检查。例如:
var arr = [1, "two", false];
if (Array.isArray(arr)) {
for (var i = 0; i < arr.length; i++) {
console.log(typeof arr[i]);
}
}
输出结果为:
number
string
boolean
同理,对于对象也可以使用for...in循环遍历对象属性进行类型检查。例如:
var obj = {name: "Tom", age: 18};
for (varkeyin obj) {
if (obj.hasOwnProperty(key)) {
console.log(key + " : " + typeof obj[key]);
}
}
输出结果为:
name : string
age : number
2,instanceof运算符:可以用来检测对象是否属于某个类或构造函数的实例。例如:
Copy Codevar arr = [1,2,3];
console.log(arr instanceof Array); // 输出 true
3,Array.isArray()方法:可以用来检测一个变量是否为数组类型。例如:
var arr = [1,2,3];
console.log(Array.isArray(arr)); // 输出 true
4,Object.prototype.toString.call()方法:可以用来获取一个变量的类型字符串。可以通过将变量作为call()方法的参数来获取其类型字符串。例如:
var arr = [1,2,3];
console.log(Object.prototype.toString.call(arr)); // 输出 "[object Array]"
使用这种方式可以精确地判断一个变量的具体类型,甚至包括内置对象和自定义对象等。
5,value.constructor(或者value.constructor.name)我觉得这种方法最好用
对于大多数值,可以通过访问 value.constructor 属性来获取构造函数并判断值的类型。但请注意,对于 undefined 和 null 这样的特殊值,它们没有 constructor 属性,因此访问会导致报错。
console.log((123).constructor === Number); // true
console.log('hello'.constructor === String); // true
console.log(true.constructor === Boolean); // true
console.log(undefined.constructor === undefined); // 报错
console.log(null.constructor === null); // 报错
console.log([].constructor === Array); // true
console.log({}.constructor === Object); // true
console.log((function() {}).constructor === Function); // true
需要注意的是,在ES6之后,还引入了新的类型检测方式,比如Symbol.toStringTag、Symbol.hasInstance等。但这些方法的使用场景比较特殊,一般情况下不太常用。
更多推荐

所有评论(0)