typeof 和instanceof

一、typeof

语法为 typeof data,可能返回number,boolean,string,object,undefined,function

typeof "John"                 // Returns string 
typeof 3.14                   // Returns number
typeof false                  // Returns boolean
typeof [1,2,3,4]              // Returns object
typeof {name:'John', age:34}  // Returns object

typeof null                 // Returns object特殊值null被认为是一个空的对象指针

typeof function(){}    //Returns function

typeof /w/               //Returns object or function Safari5及之前版本、Chrome7及之前版本对正则表达式调用typeof会返回function,其他浏览器返回object

undefined值派生自null值,所以alert(null==undefined)//返回true;但是alert(null===undefined)//返回false

不需要把变量的值显式设置为undefined,但在保存对象的变量还没真正保存对象时,就应该明确地让该变量设置为null值。这有助于区分未初始化的变量和空对象指针。

一些全局变量或全局对象的属性一旦不再有用,可以通过设置null值解除引用,优化内存。(ps:局部变量会在它们离开执行环境自动被解除引用,全局变量直到关闭网页或浏览器才会被销毁。)

二、instanceof

语法为 o instanceof A,用来判断是否是要检测对象的实例。

var a=new String("a");

a instanceof String    //Return true 注意String大小写,不能用字符字面量,如var a="a", a instanceof String  返回false

var b=new Boolean;

b instanceof String  //Return true 注意String大小写

var c=new Date();

c instanceof Date  //Return true

var d=uull;

d instanceof Null  //Return false

var e=undefined;

e instanceof Undefined  //Return false

var f=function(){}

f instanceof Function  //Return true

f instanceof Object  //Return true

var g=[1,2,3];

g instanceof Array   //Return true

function H(){ }

var h=new H();

h instanceof H   //Return true

var i=new Object("it's a string");

i instanceof String //Return true; 创建String实例

var j=new Boolean(false);

j&&true   //Return true;j为Boolean对象,而不是false值,所以返回true;

posted @ 2014-08-18 00:30  xjinza  阅读(891)  评论(0编辑  收藏  举报