typeof和Object.prototype.toString比較

小樊
85
2024-06-18 18:56:53

typeof是一個(gè)操作符,用來(lái)獲取一個(gè)值的數(shù)據(jù)類型,返回值是一個(gè)字符串,表示該值的數(shù)據(jù)類型。Object.prototype.toString是一個(gè)方法,用來(lái)獲取一個(gè)對(duì)象的類型,返回值是一個(gè)字符串,表示該對(duì)象的類型。

在比較兩者時(shí),typeof更適合用來(lái)獲取基本數(shù)據(jù)類型的數(shù)據(jù)類型,而Object.prototype.toString更適合用來(lái)獲取對(duì)象的具體類型。比如:

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]"

總的來(lái)說(shuō),typeof返回的是一個(gè)字符串,表示值的數(shù)據(jù)類型;而Object.prototype.toString返回的是一個(gè)字符串,表示對(duì)象的具體類型。在需要區(qū)分對(duì)象類型時(shí),更推薦使用Object.prototype.toString。

0