您的位置:首页 > Web前端 > JavaScript

js中typeof和instanceof的区别

2017-08-02 17:54 471 查看
ECMA中变量的类型有两种:基本类型值和引用类型值。基本类型值指的是简单的数据段,包括Number、String、Boolean、Function、Undefined以及Object。

typeof用来判断基本类型值,返回值是一个字符串,例:

如果这个值未定义

var message;

alert(typeof message);       //undefined

如果这个值是布尔值

var message=true;           

alert(typeof message);       //boolean    

如果这个值是字符串

var message="abc";           

alert(typeof message);       //string  

如果这个值是数值

var message=123;           

alert(typeof message);       //number

 如果这个值是对象或null

var message=new Object();           

alert(typeof message);       //Object

var message=null;           

alert(typeof message);       //Object

 如果这个值是函数

var message=function(){};           

alert(typeof message);       //function
因此可以看出typeof返回的是一个变量的基本类型,且必须是Number、String、Boolean、Function、Undefined、Object中的一种。

此外,typeof还可以判断一个变量是否存在,例:

if(typeof a != "undefined"){

       //变量存在

}

instanceof用来判断某个对象是否是另一个对象的实例,返回值是一个布尔值,例:

var a ={};

alert(a instanceof Object);       //true

var a =[];

alert(a instanceof Array);       //true

需要注意的是,instanceof只能用来判断对象和函数,不能用来判断字符串和数字等,例:

var a ="123";

alert(a instanceof String);       //false

var b=new String();

alert(b instanceof String);      //true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息