一蜈块、JavaScript 的數(shù)據(jù)類型共有七種。
JavaScript 的數(shù)據(jù)類型匯總圖
補(bǔ)充:
1迷扇、ES6 新增了第七種 Symbol 類型的值
2疯趟、所有引用類型都是對象。
二谋梭、數(shù)據(jù)類型分為兩大類:基礎(chǔ)數(shù)據(jù)類型信峻、引用數(shù)據(jù)類型
1、基礎(chǔ)數(shù)據(jù)類型:Number瓮床、String盹舞、 Boolean、Null隘庄、Undefined踢步、Symbol
a、Number:數(shù)值(整數(shù)丑掺、小數(shù))获印、NaN、Infinity
b街州、String:'123'(單引號)兼丰、''123''(雙引號)、\n(轉(zhuǎn)義字符)
c唆缴、 Boolean:true/非0即true鳍征、false\0
d、Null:空對象面徽,是objeect類型
e艳丛、Undefined:未定義的(初始化未賦值)
f、Symbol :表示獨(dú)一無二的值趟紊,最大的用法是用來定義對象的唯一屬性名氮双。
2、引用數(shù)據(jù)類型:Object
a霎匈、Object:是一種無序名值對的集合戴差。包括了:Function(一等公民)、Array唧躲、Date造挽、Math 、RegExp等等皆為對象
b弄痹、創(chuàng)建對象的方法有兩種:分別為new一個對象跟字面量創(chuàng)建對象
let obj = new Object()
obj.name = 'objName';
obj.age = 18;
obj.sayName = function(){
console.log(this.name)
}
等價于:
let obj = {
name:'objName',
age:18,
sayName(){
console.log(this.name)
}
}
三饭入、基礎(chǔ)類型都是保存在棧當(dāng)中,引用類型都是保存在堆當(dāng)中
棧stack:(井口存放)先進(jìn)后出肛真,棧是向低地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)谐丢,是一塊連續(xù)的內(nèi)存區(qū)域。由系統(tǒng)自動分配及釋放內(nèi)存空間蚓让,空間較小乾忱,分配效率速度較快。
堆heap:(隊(duì)列優(yōu)先)先進(jìn)先出历极,堆是向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)窄瘟,是不連續(xù)的內(nèi)存區(qū)域。由new申請的動態(tài)分配的內(nèi)存空間也不會自動釋放趟卸,空間比較靈活也比較大蹄葱,分配效率速度比較慢。