判断数据类型的方法:
this.drivers = new Array("Mike","John");
(typeof this.drivers)+","+(this.drivers instanceof Array)

image.png
typeof 显示数据类型 ( 6种 Data type,不够具体 ),instance比较对象是否是该数据类型并返回True / False 。(比 typeof 更具体)
除了typeof还有instance两种之外还有constructor。
e.constructor === Function
prototype的<\span style="color:red"}>\原型方法</span>\ :
在面向对象中一但创立了对象,则成员变量则不可更改,但是JS中可以再接着添加成员变量
var bill=new employee("Bill Gates","Engineer");
employee.prototype.salary=null;
bill.salary=20000;
document.write(bill.salary);
bill.toString( ) = function( ){ alert(this.name); } ;
// 只对该对象添加了方法,对其他对象不管用。
employee.toString( ) = function( ){ alert(this.name); } ;
// 对所有employee的对象添加了该方法。
Object.toString( ) = function( ){ alert(this.name); } ;
// 对所有对象添加了该方法。
还有哪些有趣的数据结构?
1.Number类型
NaN:非数字类型。特点:① 涉及到的 任何关于NaN的操作,都会返回NaN ② NaN不等于自身。
isNaN()函数,用于判断是否是一个非数字类型。如果传入的参数是一个非数字类型,那么返回true;否则返回false;
- 数值转换:
Number()转型函数,可以用于任何数据类型;
parseInt(),将值转换为整型,用的比较多;
parseFloat();将值转换为浮点型。
2.String类型
str.length
- 转型函数String(),适用于任何数据类型(null,undefined 转换后为null和undefined);toString()方法(null,defined没有toString()方法)。
3.Boolean类型
该类型只有两个值,true和false
4.Null类型
null类型被看做空对象指针,前文说到null类型也是空的对象引用。只有一个值,即null值,所以,在你 用typeof 操作符去检测null类型的值时,结果是object类型。
- 因为null的typeof是Object,所以必须用==null来判断是不是为null。
5.Undefined类型
只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。
- Object类型
- Set类型
s = new Set()
s.add("Thomas Jefferson");
s.size // 容器大小
为什么不用instance呢?
- instanceof 操作符的问题在于,它假定只有一个全局执行环境。如果网页中包含多个框架,那实
际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的Array 构造函数。如果你从
一个框架向另一个框架传入一个数组,那么传入的数组与在第二个框架中原生创建的数组分别具有各自
不同的构造函数。