温馨提示×

typeof和Object.prototype.toString比较

小樊
82
2024-06-18 18:56:53
栏目: 编程语言

typeof是一个操作符,用来获取一个值的数据类型,返回值是一个字符串,表示该值的数据类型。Object.prototype.toString是一个方法,用来获取一个对象的类型,返回值是一个字符串,表示该对象的类型。

在比较两者时,typeof更适合用来获取基本数据类型的数据类型,而Object.prototype.toString更适合用来获取对象的具体类型。比如:

typeof 1; // "number"
typeof "hello"; // "string"
typeof true; // "boolean"
typeof {}; // "object"
typeof []; // "object"

Object.prototype.toString.call(1); // "[object Number]"
Object.prototype.toString.call("hello"); // "[object String]"
Object.prototype.toString.call(true); // "[object Boolean]"
Object.prototype.toString.call({}); // "[object Object]"
Object.prototype.toString.call([]); // "[object Array]"

总的来说,typeof返回的是一个字符串,表示值的数据类型;而Object.prototype.toString返回的是一个字符串,表示对象的具体类型。在需要区分对象类型时,更推荐使用Object.prototype.toString。

0