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;