JS中的instanceof和typeof,以及特殊引用类型
1、instanceof是用于测试对象类型,通常格式为:a instanceof b,返回true或falise,表示为对象a是否是类型b的实例。
typeof则是用于测试基本类型,包括undefined, null, number, boolean, string, object。通常格式为: typeof a,返回a的类型。
2、对于ECMAScript的三种特殊引用类型:Boolean, Number, String来说,实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我妈能够调用一些方法来操作这些数据。例如:
var s1 = "some text";
var s2 = s1.substring(2);
但是要注意,我们不能在运行时给基本类型值添加属性和方法,因为引用类型和基本包装类型的主要区别就是对象的生存期,后者会在执行瞬间后被立即销毁。
他们的instanceof和typeof的返回值也是不同的。例如:
var obj = new Object("some text");
alert(obj instanceof String); //true
var numberObject = new Number(10);
var numberVlue = 10;
alert(typeof numberObject); //"object"
alert(typeof numberValue); //"number"
alert(numberObject instanceof Number); //true
alert(numberValue instanceof Number); //false
/*此结果对Number和Boolean类似,这也是为什么我们不推荐使用这两种引用类型。*/
最新文章
- LTE 测试文档(翻译)
- SQL Server 2012 学习笔记1
- Java中为什么有abstract interface 修饰类?
- gridControl控件动态绑定列
- bzoj 3687 bitset的运用
- 4、JPA table主键生成策略(在JPA中table策略是首推!!!)
- 关于NPC和NP-Hard问题
- How Many Points of Intersection?
- 深入JS系列学习4
- SQL中DATEPART返回日期单独部分
- 递推,大数存储E - Order Count
- jqgrid 同列不同行的<;select>;不相同
- 面试必问Elasticsearch倒排索引原理
- Qt跨平台开发Wince5.0和Android程序
- mybatis 常用
- Linux中利用extundelete恢复误删除的数据
- 数组的高级API-sort
- 【网络编程4】网络编程基础-ARP响应(ARP欺骗之中间人攻击)
- springboot + mybatis 的项目,实现简单的CRUD
- 配置SSH服务使用证书登录Ubuntu服务器