JavaScript有哪些數(shù)據(jù)類(lèi)型
在JavaScript中每一個(gè)值都屬于某一種數(shù)據(jù)類(lèi)型赴肚。JavaScript的數(shù)據(jù)類(lèi)型共有六種锈颗。它們分別是undefined已亥、null采蚀、boolean疲牵、number、string榆鼠、object纲爸。
它們共分為兩大類(lèi),分別為:
- 1.基本數(shù)據(jù)類(lèi)型(也稱(chēng)為值類(lèi)型):字符串(String)妆够、數(shù)字(Number)识啦、布爾(Boolean)、空(Null)神妹、未定義(Undefined)颓哮、Symbol(代表創(chuàng)建之后獨(dú)一無(wú)二并且不可變的數(shù)據(jù)類(lèi)型)。
- 2.引用數(shù)據(jù)類(lèi)型(對(duì)象類(lèi)型:object):對(duì)象(Object)鸵荠、數(shù)組(Array)冕茅、函數(shù)(Function)
兩大類(lèi)的區(qū)別
- 基本數(shù)據(jù)類(lèi)型:1.存儲(chǔ)在棧中;可以直接訪(fǎng)問(wèn)到并操作數(shù)據(jù)蛹找;var a=1 姨伤,var b=a,將原始值得副本復(fù)制給新變量
- 引用數(shù)據(jù)類(lèi)型:1.存儲(chǔ)在堆中庸疾;訪(fǎng)問(wèn)引用地址乍楚,根據(jù)引用地址找到堆中的實(shí)體;var obj={age:18},var obj1=obj,將引用地址復(fù)制給新變量届慈。
var a=[1,2,3,4,5]
var b=a;
var c=a[0];
console.log(b);//輸出:[1,2,3,4,5]
console.log(c);//輸出:1 因?yàn)閍只是ba第一個(gè)值復(fù)制給c徒溪,所以c為基本數(shù)據(jù)類(lèi)型,可以直接訪(fǎng)問(wèn)數(shù)據(jù)
//改變數(shù)值
b[3] = 8;
c = 7;
console.log(a);//輸出[1,2,3,8,5] 因?yàn)閍為引用數(shù)據(jù)類(lèi)型金顿,a復(fù)制給b是把引用地址復(fù)制給b词渤,就是a和b同時(shí)指向棧中同一個(gè)引用地址,因此修改其中一個(gè)數(shù)據(jù)串绩,另一個(gè)也會(huì)隨之改變
console.log(a);//輸出[1,2,3,8,5]
String類(lèi)型
字符串可以由單引號(hào)(')或雙引號(hào)(")表示缺虐,用以表示由零或多個(gè)16位的Unicode字符組成的字符序列即字符串
var name="zhangshan"
Number類(lèi)型
js只有一種數(shù)字類(lèi)型。數(shù)字可以帶小數(shù)點(diǎn)礁凡,也可以不帶
var X1=12.00;//使用小數(shù)點(diǎn)來(lái)寫(xiě)
var X2=12; //不使用小數(shù)點(diǎn)來(lái)寫(xiě)
//通過(guò)科學(xué)計(jì)數(shù)法來(lái)書(shū)寫(xiě)
var X=123e5; // 12300000
var X=123e-5; // 0.00123
Boolean類(lèi)型
它有兩個(gè)值:true和false高氮,但需要注意的是true不一定等于1,false不一定等于0顷牌。
var a=true;
var b=false;
Undefined 和 Null
Undefined類(lèi)型中只有一個(gè)值undefined剪芍。對(duì)未初始化和未聲明的變量執(zhí)行typeof操作符都會(huì)返回undefined
Null類(lèi)型是第二個(gè)只有一個(gè)值的數(shù)據(jù)類(lèi)型即null。null值表示一個(gè)空指針對(duì)象窟蓝,因此typeof操作符檢測(cè)null值時(shí)返回“object”
Object數(shù)據(jù)類(lèi)型
又稱(chēng)為對(duì)象罪裹,是一組數(shù)據(jù)和功能(函數(shù))的集合。可以用new操作符后跟要?jiǎng)?chuàng)建的對(duì)象類(lèi)型的名稱(chēng)來(lái)創(chuàng)建状共。也可以用字面量表示法創(chuàng)建套耕。在其中添加不同名(包含空字符串在內(nèi)的任意字符串)的屬性。