在JavaScript中,查看变量类型有多种方法,以下是一些常用的方式:
typeof
操作符typeof
是一个一元操作符,用于返回一个字符串,表示未经计算的操作数的类型。
let num = 123;
console.log(typeof num); // "number"
let str = "Hello";
console.log(typeof str); // "string"
let bool = true;
console.log(typeof bool); // "boolean"
let obj = { key: "value" };
console.log(typeof obj); // "object"
let arr = [1, 2, 3];
console.log(typeof arr); // "object" 注意:数组也是对象
let nil = null;
console.log(typeof nil); // "object" 注意:这是一个历史遗留问题
let und;
console.log(typeof und); // "undefined"
instanceof
操作符instanceof
用于测试构造函数的 prototype
属性是否出现在对象的原型链中的任何位置。
let arr = [1, 2, 3];
console.log(arr instanceof Array); // true
let date = new Date();
console.log(date instanceof Date); // true
Object.prototype.toString.call()
这种方法可以准确地返回变量的类型。
function getType(variable) {
return Object.prototype.toString.call(variable).slice(8, -1);
}
console.log(getType(123)); // "Number"
console.log(getType("Hello")); // "String"
console.log(getType(true)); // "Boolean"
console.log(getType({})); // "Object"
console.log(getType([])); // "Array"
console.log(getType(null)); // "Null"
console.log(getType(undefined)); // "Undefined"
typeof
: 简单快速,适用于基本类型(number, string, boolean, undefined)的检查。instanceof
: 适合用于检查对象是否是某个特定构造函数的实例,常用于自定义对象和内置对象的类型检查。Object.prototype.toString.call()
: 最准确的方法,可以区分所有的内置类型,包括 null
和 undefined
。null
为对象:typeof null
会返回 "object"
,这是一个历史遗留问题。应使用 Object.prototype.toString.call()
来避免这个问题。Array.isArray()
方法可以准确判断一个变量是否为数组。Array.isArray()
方法可以准确判断一个变量是否为数组。通过这些方法,你可以有效地在JavaScript中检查和区分不同的数据类型。
算法大赛
停课不停学 腾讯教育在行动第一期
微搭低代码直播互动专栏
TVP「再定义领导力」技术管理会议
云+社区沙龙online [国产数据库]
高校公开课
云+社区沙龙online第5期[架构演进]
企业创新在线学堂
领取专属 10元无门槛券
手把手带您无忧上云