JavaScript基本數(shù)據(jù)類型總結(jié)

數(shù)據(jù)類型是決定 value 可以存為哪個(gè)類型的特性。例如在 JavaScript 中一個(gè) Boolean 只能存放 true或false , 而一個(gè) String 能存放任何字符串 , 一個(gè) Number 存放任何類型的數(shù)字 , 等等...值的數(shù)據(jù)類型也影響哪個(gè)操作對(duì)該值有效,例如, 一個(gè)整數(shù)可以乘以一個(gè)整數(shù),而不是一個(gè)字符串巨柒。

——MDN

0七種數(shù)據(jù)類型

0.1數(shù)值 Number

0.1.1定義

在 JavaScript 中, Number 是一種雙精度64位浮點(diǎn)格式(double-precision 64-bit floating point format)/binary64 (IEEE 754-2008)/ double (IEEE 754-1958)的數(shù)字?jǐn)?shù)據(jù)類型(ECMAScript )歼指。

——MDN

0.1.2屬性

格式:

符號(hào)位(用于表示正負(fù)號(hào)):1位卖丸,0表示正數(shù)糠悯,1表示負(fù)數(shù);

指數(shù)(用于表示次方數(shù)):11位妻往,數(shù)值范圍:(2^1024互艾,2^-1023),超出范圍的數(shù)字會(huì)返回infinity讯泣;

尾數(shù)纫普、顯著精度(用于表示精確度):53位(52顯式存儲(chǔ)),可以精確表示絕對(duì)值小于2^53的數(shù)字好渠,超出范圍的整數(shù)運(yùn)算的結(jié)果會(huì)開(kāi)始出現(xiàn)錯(cuò)誤昨稼;

整數(shù)字面量:十進(jìn)制沒(méi)有前綴0;二進(jìn)制整數(shù)以0b/0B開(kāi)頭拳锚;八進(jìn)制整數(shù)以0o/0O開(kāi)頭假栓,只能包括數(shù)字0-7,嚴(yán)格模式下必須以0o/0O開(kāi)頭霍掺;十六進(jìn)制整數(shù)以0x/0X開(kāi)頭匾荆;

浮點(diǎn)數(shù)字面量:一個(gè)十進(jìn)制正數(shù):可以帶正負(fù)號(hào);小數(shù)點(diǎn)杆烁;小數(shù)部分(一串由十進(jìn)制表示)牙丽;指數(shù)部分,以e/E開(kāi)頭兔魂,后面跟著整數(shù)烤芦,可以由正負(fù)號(hào)。(浮點(diǎn)數(shù)字面量至少有一位數(shù)字析校,而且必須帶小數(shù)點(diǎn)或e/E)

正零和負(fù)零:64位浮點(diǎn)數(shù)表示法的符號(hào)位不同构罗,但是等價(jià)的。

NaN:非數(shù)字勺良。

infinity:無(wú)窮绰播,有正負(fù)。

0.1.3關(guān)系

在其他編程語(yǔ)言中尚困,有不同的數(shù)字類型存在蠢箩,比如:整型(Integers),單精度浮點(diǎn)型(Floats),雙精度浮點(diǎn)型(Doubles)谬泌,Bignums滔韵。

優(yōu)勢(shì):雙精度二進(jìn)制浮點(diǎn)格式(double)是計(jì)算機(jī)使用的一種數(shù)據(jù)類型。比起單精度浮點(diǎn)數(shù)掌实,雙精度浮點(diǎn)數(shù)(double)使用 64 位(8字節(jié)) 來(lái)儲(chǔ)存一個(gè)浮點(diǎn)數(shù)陪蜻。 它可以表示十進(jìn)位制的15或16位有效數(shù)字,其可以表示的數(shù)字的絕對(duì)值范圍大約是[2.23\times 10^((-308)),{\text{1.79))\times 10^((308))]贱鼻,它比單精度浮點(diǎn)格式具有更寬的適用范圍宴卖。

劣勢(shì):與單精度浮點(diǎn)格式一樣,與相同大小的整數(shù)格式相比邻悬,它缺乏對(duì)整數(shù)的精度症昏。

0.2.字符串 String

0.2.1定義

由零個(gè)或多個(gè)字符組成的有限序列。它是編程語(yǔ)言中表示文本的數(shù)據(jù)類型父丰。

0.2.2屬性

放在單引號(hào)或雙引號(hào)之中肝谭。注意在單/雙引號(hào)中使用單引號(hào)需要在內(nèi)部的單/雙引號(hào)前面加上反斜杠用來(lái)轉(zhuǎn)義。

字符串長(zhǎng)度:在面向?qū)ο笳Z(yǔ)言JavaScript把字符串表示為對(duì)象的情況下蛾扇,如果值可以在運(yùn)行期變更攘烛,則叫做“可變的”(mutable),如果值在建立后就不可變更了镀首,則叫做“不變的”(immutable)

“定長(zhǎng)字符串”坟漱,它有固定的極大長(zhǎng)度并且不管是否達(dá)到了這個(gè)極大值都使用同樣數(shù)量的內(nèi)存;

“變長(zhǎng)字符串”蘑斧,它的長(zhǎng)度不是專斷固定的并且依賴于實(shí)際的大小使用可變數(shù)量的內(nèi)存靖秩。(如:對(duì)象object)

0..3關(guān)系

如果長(zhǎng)字符串需要分成多行,有下面幾種方法:

1)反斜杠竖瘾;2)操作符+沟突;2)模板字面量`;

轉(zhuǎn)義符(\):在字符串內(nèi)用來(lái)表示一些特殊字符捕传。

字符串與數(shù)組:

字符串可以被視為字符數(shù)組惠拭,也有l(wèi)ength屬性。

字符集:JavaScript運(yùn)行在程序中使用Unicode碼點(diǎn)表示字符庸论,即將字符寫(xiě)成\uxxxx的形式职辅。每個(gè)字符在JavaScript內(nèi)部都是以16位(即2個(gè)字節(jié))的UTF-16格式儲(chǔ)存。

Base64轉(zhuǎn)碼:將任意值轉(zhuǎn)換為0~9聂示,A~Z域携,a~z,+和/這64個(gè)字符組成的可打印字符鱼喉,JavaScript原生提供兩個(gè)轉(zhuǎn)換方法:

1)btoa():任意值轉(zhuǎn)換為Base64秀鞭;atob():Base64轉(zhuǎn)換為原來(lái)值趋观。

0.3.布爾值 Boolean

0.1.1定義

一種邏輯數(shù)據(jù)類型,它只能具有真值或假值锋边。

0.1.2屬性

如果JavaScript預(yù)期某個(gè)位置應(yīng)該是布爾值皱坛,會(huì)將該位置上現(xiàn)有的值自動(dòng)轉(zhuǎn)換為布爾值,轉(zhuǎn)換規(guī)則是除了undefined,null,false,0,NaN,' '或" "這6個(gè)值被轉(zhuǎn)換為false豆巨,其他值都被視為true剩辟。

0.1.3關(guān)系

在抽象代數(shù)中,布爾代數(shù)(英語(yǔ):Boolean algebra)是捕獲了集合運(yùn)算和邏輯運(yùn)算二者的根本性質(zhì)的一個(gè)代數(shù)結(jié)構(gòu)(就是說(shuō)一組元素和服從定義的公理的在這些元素上運(yùn)算)往扔。特別是贩猎,它處理集合運(yùn)算交集、并集萍膛、補(bǔ)集融欧;和邏輯運(yùn)算與、或卦羡、非。

在JavaScript中麦到,布爾條件常常用于決定執(zhí)行哪部分代碼(比如if語(yǔ)句)或重復(fù)(比如for循環(huán))等等的邏輯計(jì)算绿饵。

0.4.undefined

0.1.1定義

當(dāng)一個(gè)表達(dá)式未被賦予正確值,但在語(yǔ)法上是正確的時(shí)候瓶颠。

表示一個(gè)“此處無(wú)定義”的原始值拟赊。

0.1.2屬性

根據(jù)情況,對(duì)undefined的評(píng)估可能導(dǎo)致異炒饬埽或未定義行為吸祟,但在某些編程語(yǔ)言中,未定義值可能發(fā)生在正常的桃移、可預(yù)測(cè)的程序執(zhí)行過(guò)程中屋匕。

轉(zhuǎn)換數(shù)值時(shí)為NaN。

0.1.3關(guān)系

undefined不能與空字符串借杰、布爾“false”或其他“空”(但定義的)值混淆过吻。

可空(nullable)數(shù)據(jù)類型保留一個(gè)特殊的空值來(lái)表示undefined的值,因此null是一種值蔗衡;注意纤虽,undefined通常不是值。

0.5.null

0.1.1定義

空對(duì)象绞惦。

' '

" "

0.5.2屬性

轉(zhuǎn)換為數(shù)值是0逼纸。

0.5.3關(guān)系


0.6symbol

0.6.1定義

Symbol 為字面量基本類型。ES6新引入的數(shù)據(jù)類型济蝉〗芄簦可以創(chuàng)建獨(dú)一無(wú)二的值菠发。

0.6.2屬性

“symbol”這個(gè)類型的值可以用來(lái)創(chuàng)建匿名的對(duì)象屬性。該數(shù)據(jù)類型通常被用作一個(gè)對(duì)象屬性的鍵值——當(dāng)你想讓它是私有的時(shí)候专缠。例如雷酪,symbol 類型的鍵存在于各種內(nèi)置的 JavaScript 對(duì)象中。同樣涝婉,自定義類也可以這樣創(chuàng)建私有成員哥力。symbol 數(shù)據(jù)類型具有非常明確的目的,并且因?yàn)槠涔δ苄詥我坏膬?yōu)點(diǎn)而突出墩弯;一個(gè) symbol 實(shí)例可以被賦值到一個(gè)左值變量吩跋,還可以通過(guò)標(biāo)識(shí)符檢查類型,這就是它的全部特性渔工。不能對(duì)該類型實(shí)例使用其他操作符(將“Symbol”類型的實(shí)例與 “Number” 類型的實(shí)例對(duì)比锌钮,例如整數(shù) 42,該實(shí)例就具有將值與其他類型的值進(jìn)行比較或組合的運(yùn)算符)引矩。

一個(gè)具有數(shù)據(jù)類型 “symbol” 的值可以被稱為 “符號(hào)類型值”梁丘。在 JavaScript 運(yùn)行時(shí)環(huán)境中,一個(gè)符號(hào)類型值可以通過(guò)調(diào)用函數(shù) Symbol() 創(chuàng)建旺韭,這個(gè)函數(shù)動(dòng)態(tài)地生成了一個(gè)匿名氛谜,唯一的值。Symbol類型唯一合理的用法是用變量存儲(chǔ) symbol的值区端,然后使用存儲(chǔ)的值創(chuàng)建對(duì)象屬性值漫。

0.6.3關(guān)系

使用方法:直接使用symbol()創(chuàng)建新的symbol類型,并用一個(gè)可選的字符串作為其描述织盼。

0.7對(duì)象

0.7.1定義

對(duì)象是七個(gè)原始類型中最復(fù)雜的數(shù)據(jù)類型杨何。數(shù)組、函數(shù)沥邻、正則表達(dá)式都屬于對(duì)象類型危虱。

對(duì)象是普通鍵值對(duì)的集合,是一種無(wú)序的復(fù)合數(shù)據(jù)集合谋国。

0.7.2屬性

JavaScript用一個(gè){……}表示對(duì)象槽地,鍵值對(duì)以xxx:yyy形式申明,用“芦瘾,”隔開(kāi)捌蚊,xxx是鍵名,通常稱為“屬性”近弟,如果一個(gè)屬性的值是函數(shù)缅糟,通常把這個(gè)屬性稱為方法,它可以像函數(shù)意義調(diào)用祷愉,yyy是鍵值窗宦,可以是任何數(shù)據(jù)類型赦颇。

如果一個(gè)屬性的值還是一個(gè)對(duì)象,就形成了鏈?zhǔn)揭谩?/p>

0.7.3方法

屬性的讀雀昂媒怯;屬性的賦值;屬性和值的查看髓窜;屬性的刪除扇苞;屬性是否存在;屬性的遍歷寄纵;對(duì)象的引用鳖敷。

數(shù)組的讀取程拭;數(shù)組的賦值定踱;數(shù)組的length屬性;數(shù)組的空位恃鞋;屬性是否存在崖媚;數(shù)組的遍歷。

函數(shù)的聲明恤浪;函數(shù)的重復(fù)聲明至扰;函數(shù)的調(diào)用;函數(shù)的參數(shù)资锰;函數(shù)的參數(shù)默認(rèn)值;argument對(duì)象阶祭;函數(shù)的遞歸和return語(yǔ)句绷杜;函數(shù)名的提升;函數(shù)的屬性和方法濒募;變量作用域鞭盟。

參考:https://zhuanlan.zhihu.com/p/48637522

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市瑰剃,隨后出現(xiàn)的幾起案子齿诉,更是在濱河造成了極大的恐慌,老刑警劉巖晌姚,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粤剧,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡挥唠,警方通過(guò)查閱死者的電腦和手機(jī)抵恋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宝磨,“玉大人弧关,你說(shuō)我怎么就攤上這事盅安。” “怎么了世囊?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵别瞭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我株憾,道長(zhǎng)蝙寨,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任号胚,我火速辦了婚禮籽慢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘猫胁。我一直安慰自己箱亿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布弃秆。 她就那樣靜靜地躺著届惋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪菠赚。 梳的紋絲不亂的頭發(fā)上脑豹,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音衡查,去河邊找鬼瘩欺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拌牲,可吹牛的內(nèi)容都是我干的俱饿。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼塌忽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拍埠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起土居,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤枣购,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后擦耀,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體棉圈,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年眷蜓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了迄损。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡账磺,死狀恐怖芹敌,靈堂內(nèi)的尸體忽然破棺而出痊远,到底是詐尸還是另有隱情,我是刑警寧澤氏捞,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布碧聪,位于F島的核電站,受9級(jí)特大地震影響液茎,放射性物質(zhì)發(fā)生泄漏逞姿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一捆等、第九天 我趴在偏房一處隱蔽的房頂上張望滞造。 院中可真熱鬧,春花似錦栋烤、人聲如沸谒养。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)买窟。三九已至,卻和暖如春薯定,著一層夾襖步出監(jiān)牢的瞬間始绍,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工话侄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亏推,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓年堆,卻偏偏與公主長(zhǎng)得像径簿,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嘀韧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容