2018-06-08 JS里的簡單數(shù)據(jù)類型

前言:眾所周知巾陕,JS中一共有7種數(shù)據(jù)類型毕荐,分別是number、string猩系、boolean甲锡、null兆蕉、undefined、symbol缤沦、object恨樟。其中前六種是簡單數(shù)據(jù)類型,object對象屬于復(fù)雜數(shù)據(jù)類型疚俱。本文大致介紹一下5中簡單數(shù)據(jù)類型(symbol是ES6新增的劝术,本文暫不介紹)


1、number 數(shù)值類型

  1. JavaScript 內(nèi)部呆奕,所有數(shù)字都是以64位浮點數(shù)形式儲存养晋,即使整數(shù)也是如此。所以梁钾,1與1.0是相同的绳泉,是同一個數(shù)。這就是說姆泻,JavaScript 語言的底層根本沒有整數(shù)零酪,所有數(shù)字都是小數(shù)(64位浮點數(shù))。注:JS中的小數(shù)還可以這么寫拇勃,.1 表示0.1因此:0.1 + 0.2 === 0.3這句話是錯誤的四苇。
  2. JS中的科學(xué)計數(shù)法(E大寫小寫都可以),如
123e3 // 123000
123e-3 // 0.123
  1. JS中很坑的一點是方咆,有時候你定義的數(shù)值并不一定是存儲的數(shù)值月腋,根本原因是JS中的進制轉(zhuǎn)換機制。
    比如0111會識別為73瓣赂,因為它將其識別成了8進制進行存儲榆骚,然后用十進制展示出來。
    其中:
    十進制:沒有前導(dǎo)0的數(shù)值煌集。
    八進制:有前綴0o或0O的數(shù)值妓肢,或者有前導(dǎo)0、且只用到0-7的八個阿拉伯?dāng)?shù)字的數(shù)值苫纤。
    十六進制:有前綴0x或0X的數(shù)值碉钠。
    二進制:有前綴0b或0B的數(shù)值纲缓。
  2. 非數(shù)值NaN:NaN是 JavaScript 的特殊值,表示“非數(shù)字”(Not a Number)放钦,主要出現(xiàn)在將字符串解析成數(shù)字出錯的場合。需要注意的是NaN === NaN這句話是錯誤的恭金。
    非數(shù)值NaN可以用isNaN()來檢測數(shù)值是否為非數(shù)值

2操禀、string 字符串類型

字符串就是零個或多個排在一起的字符,放在單引號或雙引號之中横腿。

  1. 多行文本輸入(即字符串需要包含回車)
    建議使用的方法:連接運算符(+)連接多個單行字符串颓屑,將長字符串拆成多行書寫,輸出的時候是單行耿焊。
  2. 轉(zhuǎn)義:反斜杠(\)在字符串內(nèi)有特殊含義揪惦,用來表示一些特殊字符,所以又稱為轉(zhuǎn)義符罗侯。主要的有以下幾種

\0 :null(\u0000)
\b :后退鍵(\u0008)
\f:換頁符(\u000C)
\n:換行符(\u000A)
\r:回車鍵(\u000D)
\t:制表符(\u0009)
\v:垂直制表符(\u000B)
\':單引號(\u0027)
\":雙引號(\u0022)
\\ :反斜杠(\u005C)

  1. 字符串和數(shù)組一樣是有l(wèi)ength屬性的器腋,但該屬性是無法改變的。
  2. 字符集钩杰。需要注意的是:

JavaScript 對 UTF-16 的支持是不完整的纫塌,由于歷史原因,只支持兩字節(jié)的字符讲弄,不支持四字節(jié)的字符措左。這是因為 JavaScript 第一版發(fā)布的時候,Unicode 的碼點只編到U+FFFF避除,因此兩字節(jié)足夠表示了怎披。后來,Unicode 納入的字符越來越多瓶摆,出現(xiàn)了四字節(jié)的編碼凉逛。但是,JavaScript 的標準此時已經(jīng)定型了群井,統(tǒng)一將字符長度限制在兩字節(jié)鱼炒,導(dǎo)致無法識別四字節(jié)的字符。上一節(jié)的那個四字節(jié)字符??蝌借,瀏覽器會正確識別這是一個字符昔瞧,但是 JavaScript 無法識別,會認為這是兩個字符菩佑。

  1. Base轉(zhuǎn)碼
    有時自晰,文本里面包含一些不可打印的符號,比如 ASCII 碼0到31的符號都無法打印出來稍坯,這時可以使用 Base64 編碼酬荞,將它們轉(zhuǎn)成可以打印的字符搓劫。另一個場景是,有時需要以文本格式傳遞二進制數(shù)據(jù)混巧,那么也可以使用 Base64 編碼枪向。

btoa():任意值轉(zhuǎn)為 Base64 編碼
atob():Base64 編碼轉(zhuǎn)為原來的值

3、boolean 布爾類型

Boolean類型只有兩個值咧党,分別是truefalse秘蛔。
布爾值代表“真”和“假”兩個狀態(tài)“猓“真”用關(guān)鍵字true表示深员,“假”用關(guān)鍵字false表示。布爾值只有這兩個值蛙埂。
其中倦畅,如果需要將各種類型的數(shù)據(jù)轉(zhuǎn)換成boolean類型,以下幾種會轉(zhuǎn)換為false绣的,其余的都是true:
undefined叠赐、null、false
數(shù)值0屡江、非數(shù)值NaN燎悍、空字符串""或''

4、null && undefined

這兩種數(shù)值類型都用來表示變量沒有值盼理,但有以下區(qū)別以及一些需要注意的地方:

  1. 如果變量沒有值谈山,如var a;則變量a為undefind
  2. null 一般表示空對象,比如聲明了一個對象但不想給值宏怔,可以設(shè)置其為
  3. 非空對象(如變量)暫時不給值奏路,可以設(shè)置其為var a = undefined; 但由于第1條,不給確定的值變量的值會默認為undefined臊诊,所以可以直接只聲明即可鸽粉,如var a ;

5、typeof 運算符

typeof運算符可以確定一個值到底是什么數(shù)據(jù)類型抓艳。

需要注意的是null的數(shù)據(jù)類型并不是object對象(原因見①)触机,以及function的數(shù)據(jù)類型是object對象,function本身不是一種數(shù)據(jù)類型

①:1995年的 JavaScript 語言第一版玷或,只設(shè)計了五種數(shù)據(jù)類型(對象儡首、整數(shù)、浮點數(shù)偏友、字符串和布爾值)蔬胯,沒考慮null,只把它當(dāng)作object的一種特殊值位他。后來null獨立出來氛濒,作為一種單獨的數(shù)據(jù)類型产场,為了兼容以前的代碼,typeof null返回object就沒法改變了舞竿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末京景,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子骗奖,更是在濱河造成了極大的恐慌确徙,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件重归,死亡現(xiàn)場離奇詭異米愿,居然都是意外死亡厦凤,警方通過查閱死者的電腦和手機鼻吮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來较鼓,“玉大人椎木,你說我怎么就攤上這事〔├茫” “怎么了香椎?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長禽篱。 經(jīng)常有香客問我畜伐,道長,這世上最難降的妖魔是什么躺率? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任玛界,我火速辦了婚禮,結(jié)果婚禮上悼吱,老公的妹妹穿的比我還像新娘慎框。我一直安慰自己,他們只是感情好后添,可當(dāng)我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布笨枯。 她就那樣靜靜地躺著,像睡著了一般遇西。 火紅的嫁衣襯著肌膚如雪馅精。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天粱檀,我揣著相機與錄音硫嘶,去河邊找鬼。 笑死梧税,一個胖子當(dāng)著我的面吹牛沦疾,可吹牛的內(nèi)容都是我干的称近。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼哮塞,長吁一口氣:“原來是場噩夢啊……” “哼刨秆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起忆畅,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤衡未,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后家凯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缓醋,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年绊诲,在試婚紗的時候發(fā)現(xiàn)自己被綠了送粱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡掂之,死狀恐怖抗俄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情世舰,我是刑警寧澤动雹,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站跟压,受9級特大地震影響胰蝠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜震蒋,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一茸塞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧喷好,春花似錦翔横、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至无切,卻和暖如春荡短,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哆键。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工掘托, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人籍嘹。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓闪盔,卻偏偏與公主長得像弯院,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子泪掀,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,507評論 2 359

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