在 JavaScript 中,要输出一个对象的类型,可以使用 typeof
操作符。但是,typeof
对于数组、null 等类型的判断并不准确。为了更准确地判断对象的具体类型,可以使用 Object.prototype.toString.call()
方法。
以下是使用 typeof
和 Object.prototype.toString.call()
来输出对象类型的示例代码:
// 使用 typeof 输出对象类型
let obj = {name: 'John', age: 30};
console.log(typeof obj); // 输出 "object"
let arr = [1, 2, 3];
console.log(typeof arr); // 输出 "object",但实际上是数组类型
let nul = null;
console.log(typeof nul); // 输出 "object",但实际上是 null 类型
// 使用 Object.prototype.toString.call() 输出更准确的对象类型
console.log(Object.prototype.toString.call(obj)); // 输出 "[object Object]"
console.log(Object.prototype.toString.call(arr)); // 输出 "[object Array]"
console.log(Object.prototype.toString.call(nul)); // 输出 "[object Null]"
// 如果想要获取更简洁的类型字符串,可以封装一个函数
function getType(obj) {
return Object.prototype.toString.call(obj).slice(8, -1);
}
console.log(getType(obj)); // 输出 "Object"
console.log(getType(arr)); // 输出 "Array"
console.log(getType(nul)); // 输出 "Null"
优势:
typeof
操作符简单易用,但对于某些类型(如数组、null)判断不准确。Object.prototype.toString.call()
方法可以更准确地判断对象的具体类型。类型:
应用场景:
注意事项:
typeof
操作符对于函数、字符串、数字等基本类型的判断是准确的,但对于对象类型的判断不够准确。Object.prototype.toString.call()
方法可以准确判断对象类型,但需要封装函数来简化使用。如果你遇到了对象类型判断的问题,可以尝试使用 Object.prototype.toString.call()
方法来获取更准确的对象类型信息。如果需要更简洁的类型字符串,可以封装一个函数来提取类型字符串中的关键信息。
领取专属 10元无门槛券
手把手带您无忧上云