如题所述
æ常è§çå¤ææ¹æ³ï¼typeof
alert(typeof a) ------------> string
alert(typeof b) ------------> number
alert(typeof c) ------------> object
alert(typeof d) ------------> object
alert(typeof e) ------------> function
alert(typeof f) ------------> function
å ¶ä¸typeofè¿åçç±»åé½æ¯å符串形å¼ï¼é注æï¼ä¾å¦ï¼
alert(typeof a == "string") -------------> true
alert(typeof a == String) ---------------> false
å¦å¤typeof å¯ä»¥å¤æfunctionçç±»åï¼å¨å¤æé¤Objectç±»åç对象æ¶æ¯è¾æ¹ä¾¿ã
å¤æå·²ç¥å¯¹è±¡ç±»åçæ¹æ³ï¼ instanceof
alert(c instanceof Array) ---------------> true
alert(d instanceof Date)
alert(f instanceof Function) ------------> true
alert(f instanceof function) ------------> false
注æï¼instanceof åé¢ä¸å®è¦æ¯å¯¹è±¡ç±»åï¼å¹¶ä¸å¤§å°åä¸è½éï¼è¯¥æ¹æ³éåä¸äºæ¡ä»¶éæ©æåæ¯ã
æ ¹æ®å¯¹è±¡çconstructorå¤æï¼ constructor
alert(c.constructor === Array) ----------> true
alert(d.constructor === Date) -----------> true
alert(e.constructor === Function) -------> true
注æï¼ constructor å¨ç±»ç»§æ¿æ¶ä¼åºé
eg,
function A(){};
function B(){};
A.prototype = new B(); //A继æ¿èªB
var aObj = new A();
alert(aobj.constructor === B) -----------> true;
alert(aobj.constructor === A) -----------> false;
èinstanceofæ¹æ³ä¸ä¼åºç°è¯¥é®é¢ï¼å¯¹è±¡ç´æ¥ç»§æ¿åé´æ¥ç»§æ¿çé½ä¼æ¥trueï¼
alert(aobj instanceof B) ----------------> true;
alert(aobj instanceof B) ----------------> true;
è¨å½æ£ä¼ ï¼è§£å³construtorçé®é¢é常æ¯è®©å¯¹è±¡çconstructoræå¨æåèªå·±ï¼
aobj.constructor = A; //å°èªå·±çç±»èµå¼ç»å¯¹è±¡çconstructorå±æ§
alert(aobj.constructor === A) -----------> true;
alert(aobj.constructor === B) -----------> false; //åºç±»ä¸ä¼æ¥trueäº;
éç¨ä½å¾ç¹ççæ¹æ³ï¼ prototype
alert(Object.prototype.toString.call(a) === â[object String]â) -------> true;
alert(Object.prototype.toString.call(b) === â[object Number]â) -------> true;
alert(Object.prototype.toString.call(c) === â[object Array]â) -------> true;
alert(Object.prototype.toString.call(d) === â[object Date]â) -------> true;
alert(Object.prototype.toString.call(e) === â[object Function]â) -------> true;
alert(Object.prototype.toString.call(f) === â[object Function]â) -------> true;
alert(typeof a) ------------> string
alert(typeof b) ------------> number
alert(typeof c) ------------> object
alert(typeof d) ------------> object
alert(typeof e) ------------> function
alert(typeof f) ------------> function
å ¶ä¸typeofè¿åçç±»åé½æ¯å符串形å¼ï¼é注æï¼ä¾å¦ï¼
alert(typeof a == "string") -------------> true
alert(typeof a == String) ---------------> false
å¦å¤typeof å¯ä»¥å¤æfunctionçç±»åï¼å¨å¤æé¤Objectç±»åç对象æ¶æ¯è¾æ¹ä¾¿ã
å¤æå·²ç¥å¯¹è±¡ç±»åçæ¹æ³ï¼ instanceof
alert(c instanceof Array) ---------------> true
alert(d instanceof Date)
alert(f instanceof Function) ------------> true
alert(f instanceof function) ------------> false
注æï¼instanceof åé¢ä¸å®è¦æ¯å¯¹è±¡ç±»åï¼å¹¶ä¸å¤§å°åä¸è½éï¼è¯¥æ¹æ³éåä¸äºæ¡ä»¶éæ©æåæ¯ã
æ ¹æ®å¯¹è±¡çconstructorå¤æï¼ constructor
alert(c.constructor === Array) ----------> true
alert(d.constructor === Date) -----------> true
alert(e.constructor === Function) -------> true
注æï¼ constructor å¨ç±»ç»§æ¿æ¶ä¼åºé
eg,
function A(){};
function B(){};
A.prototype = new B(); //A继æ¿èªB
var aObj = new A();
alert(aobj.constructor === B) -----------> true;
alert(aobj.constructor === A) -----------> false;
èinstanceofæ¹æ³ä¸ä¼åºç°è¯¥é®é¢ï¼å¯¹è±¡ç´æ¥ç»§æ¿åé´æ¥ç»§æ¿çé½ä¼æ¥trueï¼
alert(aobj instanceof B) ----------------> true;
alert(aobj instanceof B) ----------------> true;
è¨å½æ£ä¼ ï¼è§£å³construtorçé®é¢é常æ¯è®©å¯¹è±¡çconstructoræå¨æåèªå·±ï¼
aobj.constructor = A; //å°èªå·±çç±»èµå¼ç»å¯¹è±¡çconstructorå±æ§
alert(aobj.constructor === A) -----------> true;
alert(aobj.constructor === B) -----------> false; //åºç±»ä¸ä¼æ¥trueäº;
éç¨ä½å¾ç¹ççæ¹æ³ï¼ prototype
alert(Object.prototype.toString.call(a) === â[object String]â) -------> true;
alert(Object.prototype.toString.call(b) === â[object Number]â) -------> true;
alert(Object.prototype.toString.call(c) === â[object Array]â) -------> true;
alert(Object.prototype.toString.call(d) === â[object Date]â) -------> true;
alert(Object.prototype.toString.call(e) === â[object Function]â) -------> true;
alert(Object.prototype.toString.call(f) === â[object Function]â) -------> true;
温馨提示:答案为网友推荐,仅供参考