js中typeof和instanceof的区别

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值