判斷數(shù)據(jù)類型的方法:
this.drivers = new Array("Mike","John");
(typeof this.drivers)+","+(this.drivers instanceof Array)

image.png
typeof 顯示數(shù)據(jù)類型 ( 6種 Data type,不夠具體 ),instance比較對(duì)象是否是該數(shù)據(jù)類型并返回True / False 。(比 typeof 更具體)
除了typeof還有instance兩種之外還有constructor。
e.constructor === Function
prototype的<\span style="color:red"}>\原型方法</span>\ :
在面向?qū)ο笾幸坏珓?chuàng)立了對(duì)象,則成員變量則不可更改,但是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); } ;
// 只對(duì)該對(duì)象添加了方法,對(duì)其他對(duì)象不管用。
employee.toString( ) = function( ){ alert(this.name); } ;
// 對(duì)所有employee的對(duì)象添加了該方法。
Object.toString( ) = function( ){ alert(this.name); } ;
// 對(duì)所有對(duì)象添加了該方法。
還有哪些有趣的數(shù)據(jù)結(jié)構(gòu)?
1.Number類型
NaN:非數(shù)字類型。特點(diǎn):① 涉及到的 任何關(guān)于NaN的操作,都會(huì)返回NaN ② NaN不等于自身。
isNaN()函數(shù),用于判斷是否是一個(gè)非數(shù)字類型。如果傳入的參數(shù)是一個(gè)非數(shù)字類型,那么返回true;否則返回false;
- 數(shù)值轉(zhuǎn)換:
Number()轉(zhuǎn)型函數(shù),可以用于任何數(shù)據(jù)類型;
parseInt(),將值轉(zhuǎn)換為整型,用的比較多;
parseFloat();將值轉(zhuǎn)換為浮點(diǎn)型。
2.String類型
str.length
- 轉(zhuǎn)型函數(shù)String(),適用于任何數(shù)據(jù)類型(null,undefined 轉(zhuǎn)換后為null和undefined);toString()方法(null,defined沒(méi)有toString()方法)。
3.Boolean類型
該類型只有兩個(gè)值,true和false
4.Null類型
null類型被看做空對(duì)象指針,前文說(shuō)到null類型也是空的對(duì)象引用。只有一個(gè)值,即null值,所以,在你 用typeof 操作符去檢測(cè)null類型的值時(shí),結(jié)果是object類型。
- 因?yàn)閚ull的typeof是Object,所以必須用==null來(lái)判斷是不是為null。
5.Undefined類型
只有一個(gè)值,即undefined值。使用var聲明了變量,但未給變量初始化值,那么這個(gè)變量的值就是undefined。
- Object類型
- Set類型
s = new Set()
s.add("Thomas Jefferson");
s.size // 容器大小
為什么不用instance呢?
- instanceof 操作符的問(wèn)題在于,它假定只有一個(gè)全局執(zhí)行環(huán)境。如果網(wǎng)頁(yè)中包含多個(gè)框架,那實(shí)
際上就存在兩個(gè)以上不同的全局執(zhí)行環(huán)境,從而存在兩個(gè)以上不同版本的Array 構(gòu)造函數(shù)。如果你從
一個(gè)框架向另一個(gè)框架傳入一個(gè)數(shù)組,那么傳入的數(shù)組與在第二個(gè)框架中原生創(chuàng)建的數(shù)組分別具有各自
不同的構(gòu)造函數(shù)。