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

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

JavaScript 的數(shù)據(jù)類型胸蛛,共有六種。

1渠抹、數(shù)值(number)
2钧忽、字符串(string)
3、布爾值(boolean)
4逼肯、undefined
5耸黑、null
6、對象(object)

原始類型:number string boolean
復(fù)合類型:object
特殊值:undefined null

JS三種方法判斷一個值到底是什么類型

1篮幢、typeof運算符
數(shù)值大刊、字符串、布爾值分別返回number三椿、string缺菌、boolean。
注意以下幾個案例的typeof的返回值

typeof undefined  //undefined
typeof null  //object
typeof fn  //function

2搜锰、instanceof運算符

3伴郁、Object.prototype.toString方法

  • 數(shù)值(number)

1、整數(shù)與浮點數(shù)
JS內(nèi)部蛋叼,所有的數(shù)字都是以64位浮點數(shù)形式存儲焊傅,JS底層語言中沒有整數(shù)的概念剂陡,所有的數(shù)字都是小數(shù),即64位浮點數(shù)狐胎,
因浮點數(shù)鸭栖,不是精確的值,運算時要特別小心

0.1 + 0,2 === 0.3 //false

2握巢、數(shù)值的表示法
下面兩種情況晕鹊,JS自動轉(zhuǎn)換為科學(xué)計數(shù)發(fā)
(1)小數(shù)點前的數(shù)字多于21位

12324234343453454565486450978054789567
1.2324234343453454e+37

(2)小數(shù)點后的零多于5個。

.0000000009
9e-10

3暴浦、數(shù)值的進(jìn)制

十進(jìn)制:沒有前導(dǎo)0的數(shù)值溅话。
八進(jìn)制:有前綴0o或0O的數(shù)值,或者有前導(dǎo)0歌焦、且只用到0-7的八個阿拉伯?dāng)?shù)字的數(shù)值公荧。
十六進(jìn)制:有前綴0x或0X的數(shù)值。
二進(jìn)制:有前綴0b或0B的數(shù)值同规。

默認(rèn)情況下,JavaScript 內(nèi)部會自動將八進(jìn)制窟社、十六進(jìn)制券勺、二進(jìn)制轉(zhuǎn)為十進(jìn)制。

4灿里、特殊數(shù)值
(1)JS 內(nèi)部實際上存在2個0:一個是+0关炼,一個是-0,區(qū)別就是64位浮點數(shù)表示法的符號位不同匣吊。它們是等價的儒拂。
只有作為分子時不等價

1/0    //Infinity
1/-0   //-Infinity

(2)NaN,表示“非數(shù)字”(Not a Number)色鸳,主要出現(xiàn)在將字符串解析成數(shù)字出錯的場合社痛。

NaN不等于任何值,包括它本身命雀。
NaN與任何數(shù)(包括它自己)的運算蒜哀,得到的都是NaN。
NaN在布爾運算時被當(dāng)作false吏砂。
判斷是否是NaN的方法撵儿,isNaN(),isNaN只對數(shù)值有效,如果傳入其他值狐血,會被轉(zhuǎn)為數(shù)值

5淀歇、正無窮Infinity和負(fù)無窮-Infinity

Math.pow(2, 1024)   // Infinity
0/0   //Nan
1/0   //Infinity

Infinity大于一切數(shù)值(除了NaN),-Infinity小于一切數(shù)值(除了NaN)
Infinity與NaN比較匈织,總是返回false浪默。

  • 字符串(string)

1、string 用單引號或雙引號表示
2、空字符串和空格字符串

''.length  //0
' '.length  //1

3浴鸿、轉(zhuǎn)義符:反斜杠 \

4井氢、多行字符串的寫法

//第一種
var x1 = '123\
         234'
//第二種     (推薦)    
var x2 = '123' +
         234'

ES6多行字符串

var x3 = `123
344`
  • 布爾值(boolean)
    1、布爾只有兩個值true or false
    2岳链、下面的運算符計算結(jié)果會返回布爾值

兩元邏輯運算符: && (And)花竞,|| (Or)
前置邏輯運算符: ! (Not)
相等運算符:===,!==掸哑,==约急,!=
比較運算符:>,>=苗分,<厌蔽,<=

3、布爾值轉(zhuǎn)換規(guī)則摔癣,下面六個值轉(zhuǎn)為false奴饮,其他均為true

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

  • null和undefined
    null與undefined都可以表示“沒有”,相等運算符(==)甚至報告兩者相等,那null和undefined有什么區(qū)別呢择浊?
undefined == null   // true

null 只有一個值null
undefined 只有一個值undefined
變量沒有賦值戴卜,是undefined
有一個對象,還不想賦值琢岩,推薦給一個空值null
非對象投剥,還不想賦值,推薦給一個undefined

  • 對象(object)

1担孔、對象就是一組“鍵值對”(key-value)的集合江锨,是一種無序的復(fù)合數(shù)據(jù)集合
2、鍵名:對象的所有key都是字符串糕篇,加不加引號都可以啄育,非字符串的key會自動轉(zhuǎn)為字符串,但不加引號拌消,key必須符合標(biāo)識符
3灸撰、獲取屬性值
(1) object[‘key’],方括號運算符拼坎,鍵名必須放在引號里面浮毯,否則會被當(dāng)作變量處理。
(2) object.key泰鸡,此時key是字符串key

4债蓝、查看所有屬性
Object.keys方法,屬性以數(shù)組的方式列出

5盛龄、刪除對象的屬性

delete object['key']  //刪除后無key饰迹,無value
object.key  //undefined
'key' in object  //false

//這種情況芳誓,只是把undefined的值賦給key,key還是在的
object['key'] = undefined

6啊鸭、in運算符
檢查對象是否包含某個屬性锹淌,如果包含就返回true,否則返回false赠制。

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

in運算符它不能識別哪些屬性是對象自身的赂摆,哪些屬性是繼承的。繼承的屬性也返回true

7钟些、for…in 循環(huán)
for...in循環(huán)用來遍歷一個對象的全部屬性烟号。

它遍歷的是對象所有可遍歷(enumerable)的屬性,會跳過不可遍歷的屬性政恍。
它不僅遍歷對象自身的屬性汪拥,還遍歷繼承的屬性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末篙耗,一起剝皮案震驚了整個濱河市迫筑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宗弯,老刑警劉巖脯燃,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異罕伯,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)叽讳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門追他,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人岛蚤,你說我怎么就攤上這事邑狸。” “怎么了涤妒?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵单雾,是天一觀的道長。 經(jīng)常有香客問我她紫,道長硅堆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任贿讹,我火速辦了婚禮渐逃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘民褂。我一直安慰自己茄菊,他們只是感情好疯潭,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著面殖,像睡著了一般竖哩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脊僚,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天相叁,我揣著相機(jī)與錄音,去河邊找鬼吃挑。 笑死钝荡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的舶衬。 我是一名探鬼主播埠通,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼逛犹!你這毒婦竟也來了端辱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤虽画,失蹤者是張志新(化名)和其女友劉穎舞蔽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體码撰,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡渗柿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了脖岛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朵栖。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柴梆,靈堂內(nèi)的尸體忽然破棺而出陨溅,到底是詐尸還是另有隱情,我是刑警寧澤绍在,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布门扇,位于F島的核電站,受9級特大地震影響偿渡,放射性物質(zhì)發(fā)生泄漏臼寄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一溜宽、第九天 我趴在偏房一處隱蔽的房頂上張望脯厨。 院中可真熱鬧,春花似錦坑质、人聲如沸合武。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稼跳。三九已至盟庞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汤善,已是汗流浹背什猖。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留红淡,地道東北人不狮。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像在旱,于是被迫代替她去往敵國和親摇零。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

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

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)桶蝎,也就是一...
    悟名先生閱讀 4,118評論 0 13
  • 1. 七種數(shù)據(jù)類型 number 數(shù)值 :整數(shù)和小數(shù) string字符串 : 文本 boolean布爾值 :tru...
    加油吧_閱讀 147評論 0 0
  • 本篇文章將簡要地講述關(guān)于Javascript數(shù)據(jù)類型的一些知識驻仅,文章中僅挑選不同數(shù)據(jù)類型的一些個人認(rèn)為容易在平時出...
    宣澤彬閱讀 272評論 0 0
  • 數(shù)據(jù)類型: 數(shù)字(number), 字符串(string), 布爾(boolean), symbol(符號), n...
    遠(yuǎn)_閱讀 218評論 0 0
  • 不知道今天的進(jìn)展如何,是否還會帶來這樣那樣的麻煩登渣,在每個人無聲之中的傾訴里噪服,誰也無法責(zé)怪或者代替老師這樣的重要角色...
    子之霧閱讀 83評論 0 0