JS中的數(shù)據(jù)類型

JS中一共有七大數(shù)據(jù)類型

  1. 數(shù)值
  2. 字符串
  3. 布爾值
  4. undefined
  5. null
  6. 對(duì)象
  7. symbol (本文略過(guò))

一般將數(shù)值集嵌,字符串和布爾值視為原始類型(primitive type)。unfettered和null是JavaScript中特有的伪煤,將它們視為特殊的值。而對(duì)象是最復(fù)雜的數(shù)據(jù)類型。后文會(huì)簡(jiǎn)單介紹价捧。

1. 數(shù)值

(1)JS中所有數(shù)字都是以64位浮點(diǎn)數(shù)形式儲(chǔ)存,整數(shù)也是如此串述。如遇到小數(shù)的運(yùn)算要特別小心睛约。

(2)數(shù)值可以用科學(xué)計(jì)數(shù)法鼎俘,二進(jìn)制,八進(jìn)制十進(jìn)制和十六進(jìn)制表示辩涝。
以下是四種進(jìn)制的表示方法

十進(jìn)制:沒有前導(dǎo)0的數(shù)值贸伐。
八進(jìn)制:有前綴0o或0O的數(shù)值,或者有前導(dǎo)0膀值、且只用到0-7的八個(gè)阿拉伯?dāng)?shù)字的數(shù)值棍丐。
十六進(jìn)制:有前綴0x或0X的數(shù)值。
二進(jìn)制:有前綴0b或0B的數(shù)值沧踏。

(3)數(shù)值范圍
64位浮點(diǎn)數(shù)的指數(shù)部分的長(zhǎng)度是11個(gè)二進(jìn)制位歌逢,意味著指數(shù)部分的最大值是2047(2的11次方減1)。也就是說(shuō)翘狱,64位浮點(diǎn)數(shù)的指數(shù)部分的值最大為2047秘案,分出一半表示負(fù)數(shù),則 JavaScript 能夠表示的數(shù)值范圍為21024到2-1023(開區(qū)間)潦匈,超出這個(gè)范圍的數(shù)無(wú)法表示阱高。

(4) NaN
NaN是 JavaScript 的特殊值,表示“非數(shù)字”(Not a Number)茬缩。NaN不等于任何值赤惊,包括它本身。

(5) parseInt
此方法用于將字符串轉(zhuǎn)為整數(shù)凰锡。parseInt方法還可以接受第二個(gè)參數(shù)(2到36之間)例如

parseInt('1000', 10) // 1000

表示十進(jìn)制轉(zhuǎn)換為十進(jìn)制

(6) parseFloat
這個(gè)方法用于將一個(gè)字符串轉(zhuǎn)為浮點(diǎn)數(shù)未舟。

(7)isNaN:
isNaN方法可以用來(lái)判斷一個(gè)值是否為NaN

2.字符串

字符串就是零個(gè)或多個(gè)排在一起的字符圈暗,放在單引號(hào)或雙引號(hào)之中。

(1) 轉(zhuǎn)義
反斜杠(\)在字符串內(nèi)有特殊含義裕膀,用來(lái)表示一些特殊字符员串,所以又稱為轉(zhuǎn)義符。需要用反斜杠轉(zhuǎn)義的特殊字符昼扛,主要有下面這些寸齐。

\0 :null(\u0000)
\b :后退鍵(\u0008)
\f :換頁(yè)符(\u000C)
\n :換行符(\u000A)
\r :回車鍵(\u000D)
\t :制表符(\u0009)
\v :垂直制表符(\u000B)
' :?jiǎn)我?hào)(\u0027)
" :雙引號(hào)(\u0022)
\ :反斜杠(\u005C)

(2) length屬性
length屬性返回字符串的長(zhǎng)度,該屬性也是無(wú)法改變的抄谐。

(3)字符集
avaScript 使用 Unicode 字符集渺鹦。JavaScript 引擎內(nèi)部,所有字符都用 Unicode 表示蛹含。

(4)Base64 轉(zhuǎn)碼
Base64 就是一種編碼方法海铆,可以將任意值轉(zhuǎn)成 0~9、A~Z挣惰、a-z、+和/這64個(gè)字符組成的可打印字符殴边。使用它的主要目的憎茂,不是為了加密,而是為了不出現(xiàn)特殊字符锤岸,簡(jiǎn)化程序的處理竖幔。

3.布爾值

布爾值分為真假兩個(gè)狀態(tài),真為true是偷,假為false
下列運(yùn)算符會(huì)返回布爾值:

兩元邏輯運(yùn)算符: && (And)拳氢,|| (Or)
前置邏輯運(yùn)算符: ! (Not)

相等運(yùn)算符:===,!==蛋铆,==馋评,!=
比較運(yùn)算符:>,>=刺啦,<留特,<=

如果 JavaScript 預(yù)期某個(gè)位置應(yīng)該是布爾值,會(huì)將該位置上現(xiàn)有的值自動(dòng)轉(zhuǎn)為布爾值玛瘸。轉(zhuǎn)換規(guī)則是除了下面六個(gè)值被轉(zhuǎn)為false蜕青,其他值都視為true。

undefined
null
false
0
NaN
""或''(空字符串)

4.null與undefined

null表示空值糊渊,即該處的值現(xiàn)在為空右核。調(diào)用函數(shù)時(shí),某個(gè)參數(shù)未設(shè)置任何值渺绒,這時(shí)就可以傳入null贺喝,表示該參數(shù)為空菱鸥。比如,某個(gè)函數(shù)接受引擎拋出的錯(cuò)誤作為參數(shù)搜变,如果運(yùn)行過(guò)程中未出錯(cuò)采缚,那么這個(gè)參數(shù)就會(huì)傳入null,表示未發(fā)生錯(cuò)誤挠他。
而undefined表示未定義

6.對(duì)象

對(duì)象就是一組“鍵值對(duì)”(key-value)的集合扳抽,是一種無(wú)序的復(fù)合數(shù)據(jù)集合。

對(duì)象的所有鍵名都是字符串殖侵,如果鍵名不符合標(biāo)識(shí)名的條件(比如第一個(gè)字符為數(shù)字贸呢,或者含有空格或運(yùn)算符),且也不是數(shù)字拢军,則必須加上引號(hào)楞陷,否則會(huì)報(bào)錯(cuò)。

(1) 屬性
讀取對(duì)象的屬性茉唉,有兩種方法固蛾,一種是使用點(diǎn)運(yùn)算符,還有一種是使用方括號(hào)運(yùn)算符度陆。

var xxx= {
  y: 'Hello World'
};

xxx.y // "Hello World"
xxx['y'] // "Hello World"

點(diǎn)運(yùn)算符和方括號(hào)運(yùn)算符艾凯,不僅可以用來(lái)讀取值,還可以用來(lái)賦值懂傀。

var xxx= {};

xxx.foo= 'Hello';
obj['bar'] = 'World';

查看一個(gè)對(duì)象本身的所有屬性趾诗,可以使用Object.keys方法。

(3) delete命令
delete命令用于刪除對(duì)象的屬性蹬蚁,刪除成功后返回true恃泪。

var obj = { p: 1 };
Object.keys(obj) // ["p"]

delete obj.p // true
obj.p // undefined
Object.keys(obj) // []

(4) in運(yùn)算符
in運(yùn)算符用于檢查對(duì)象是否包含某個(gè)屬性(注意,檢查的是鍵名)犀斋,如果包含就返回true贝乎,否則返回false。

var obj = { p: 1 };
'p' in obj // true

(5)for...in 循環(huán)
for...in循環(huán)用來(lái)遍歷一個(gè)對(duì)象的全部屬性叽粹。

var obj = {a: 1, b: 2, c: 3};

for (var i in obj) {
  console.log(obj[i]);
}
// 1
// 2
// 3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末糕非,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子球榆,更是在濱河造成了極大的恐慌朽肥,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件持钉,死亡現(xiàn)場(chǎng)離奇詭異衡招,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)每强,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門始腾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)州刽,“玉大人,你說(shuō)我怎么就攤上這事浪箭∷胍危” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵奶栖,是天一觀的道長(zhǎng)匹表。 經(jīng)常有香客問我,道長(zhǎng)宣鄙,這世上最難降的妖魔是什么袍镀? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮冻晤,結(jié)果婚禮上苇羡,老公的妹妹穿的比我還像新娘。我一直安慰自己鼻弧,他們只是感情好设江,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著攘轩,像睡著了一般绣硝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上撑刺,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音握玛,去河邊找鬼够傍。 笑死,一個(gè)胖子當(dāng)著我的面吹牛挠铲,可吹牛的內(nèi)容都是我干的冕屯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼拂苹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼安聘!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起瓢棒,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浴韭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后脯宿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體念颈,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年连霉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了榴芳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗡靡。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖窟感,靈堂內(nèi)的尸體忽然破棺而出讨彼,到底是詐尸還是另有隱情,我是刑警寧澤柿祈,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布哈误,位于F島的核電站,受9級(jí)特大地震影響谍夭,放射性物質(zhì)發(fā)生泄漏黑滴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一紧索、第九天 我趴在偏房一處隱蔽的房頂上張望袁辈。 院中可真熱鬧,春花似錦珠漂、人聲如沸晚缩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)荞彼。三九已至,卻和暖如春待笑,著一層夾襖步出監(jiān)牢的瞬間鸣皂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工暮蹂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寞缝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓仰泻,卻偏偏與公主長(zhǎng)得像荆陆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子集侯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359