toString()
| 類型 | 行為描述 |
| Array | 將 Array 的每個(gè)元素轉(zhuǎn)換為字符串,并將它們依次連接起來,兩個(gè)元素之間用英文逗號(hào)作為分隔符進(jìn)行拼接。 |
| Boolean | 如果布爾值是true,則返回"true"。否則返回"false"。 |
| Date | 返回日期的文本表示。 |
| Error | 返回一個(gè)包含相關(guān)錯(cuò)誤信息的字符串。 |
| Function | 返回如下格式的字符串,其中 functionname 是一個(gè)函數(shù)的名稱,此函數(shù)的 toString 方法被調(diào)用: "function functionname() { [native code] }" |
| Number | 返回?cái)?shù)值的字符串表示。還可返回以指定進(jìn)制表示的字符串,請(qǐng)參考Number.toString()。 |
| String | 返回 String 對(duì)象的值。 |
| Object(默認(rèn)) | 返回"[object ObjectName]",其中 ObjectName 是對(duì)象類型的名稱。 |
| Symbol| 返回Symbol(內(nèi)容)
使用Object.prototype.toString.call(obj)時(shí)會(huì)返回"[object 首字母大寫數(shù)據(jù)類型]"
例如
obj為Function時(shí)返回"[object Function]"
obj為Symbol時(shí)返回"[object Symbol]"
obj為Array時(shí)返回"[object Array]"
obj為Date時(shí)返回"[object Date]"
obj為Object時(shí)返回"[object Object]"
typeof()
類型 結(jié)果
Undefined "undefined"
Null "object"
Boolean "boolean"
Number "number"
String "string"
Symbol (ECMAScript 6 新增) "symbol"
宿主對(duì)象(由JS環(huán)境提供) Implementation-dependent
函數(shù)對(duì)象([[Call]] 在ECMA-262條款中實(shí)現(xiàn)了) "function"
任何其他對(duì)象 "object" //array、正則等
instanceof 運(yùn)算符用來測(cè)試一個(gè)對(duì)象在其原型鏈中是否存在一個(gè)構(gòu)造函數(shù)的 prototype 屬性。
// 定義構(gòu)造函數(shù)
function C(){}
function D(){}
var o = new C();
o instanceof C; // true,因?yàn)?Object.getPrototypeOf(o) === C.prototype
o instanceof D; // false,因?yàn)?D.prototype不在o的原型鏈上
o instanceof Object; // true,因?yàn)镺bject.prototype.isPrototypeOf(o)返回true
C.prototype instanceof Object // true,同上
C.prototype = {};
var o2 = new C();
o2 instanceof C; // true
o instanceof C; // false,C.prototype指向了一個(gè)空對(duì)象,這個(gè)空對(duì)象不在o的原型鏈上.
D.prototype = new C(); // 繼承
var o3 = new D();
o3 instanceof D; // true
o3 instanceof C; // true