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

JavaScript 語言的每一個值,都屬于某一種數(shù)據(jù)類型。JavaScript 的數(shù)據(jù)類型瘦穆,共有六種纪隙。(ES6 又新增了第七種 Symbol 類型的值)

數(shù)值(number):整數(shù)和小數(shù)(比如1和3.14)
字符串(string):文本(比如Hello World)。
布爾值(boolean):表示真?zhèn)蔚膬蓚€特殊值扛或,即true(真)和false(假)
undefined:表示“未定義”或不存在绵咱,即由于目前沒有定義,所以此處暫時沒有任何值
null:表示空值熙兔,即此處的值為空悲伶。
對象(object):各種值組成的集合。

通常住涉,數(shù)值麸锉、字符串、布爾值這三種類型舆声,合稱為原始類型(primitive type)的值花沉,即它們是最基本的數(shù)據(jù)類型,不能再細分了纳寂。對象則稱為合成類型(complex type)的值主穗,因為一個對象往往是多個原始類型的值的合成,可以看作是一個存放各種值的容器毙芜。至于undefined和null忽媒,一般將它們看成兩個特殊值。

對象是最復雜的數(shù)據(jù)類型腋粥,又可以分成三個子類型:

  1. 狹義的對象(object)
  2. 數(shù)組(array)
  3. 函數(shù)(function)

狹義的對象和數(shù)組是兩種不同的數(shù)據(jù)組合方式晦雨,除非特別聲明,本教程的”對象“都特指狹義的對象隘冲。函數(shù)其實是處理數(shù)據(jù)的方法闹瞧,JavaScript 把它當成一種數(shù)據(jù)類型,可以賦值給變量展辞,這為編程帶來了很大的靈活性奥邮,也為 JavaScript 的“函數(shù)式編程”奠定了基礎(chǔ)。

null和undefined

null與undefined都可以表示“沒有”罗珍,含義非常相似洽腺。將一個變量賦值為undefined或null,老實說覆旱,語法效果幾乎沒區(qū)別蘸朋。
對于null和undefined,大致可以像下面這樣理解扣唱。

null表示空值藕坯,即該處的值現(xiàn)在為空团南。調(diào)用函數(shù)時,某個參數(shù)未設置任何值炼彪,這時就可以傳入null吐根,表示該參數(shù)為空。比如辐马,某個函數(shù)接受引擎拋出的錯誤作為參數(shù)佑惠,如果運行過程中未出錯,那么這個參數(shù)就會傳入null齐疙,表示未發(fā)生錯誤膜楷。

undefined表示“未定義”,下面是返回undefined的典型場景贞奋。

var i;
i // undefined

// 調(diào)用函數(shù)時赌厅,應該提供的參數(shù)沒有提供,該參數(shù)等于 undefined
function f(x) {
  return x;
}
f() // undefined

// 對象沒有賦值的屬性
var  o = new Object();
o.p // undefined

// 函數(shù)沒有返回值時轿塔,默認返回 undefined
function f() {}
f() // undefined

1.變量沒有值 //undefined
2.有一個對象 object 現(xiàn)在還不想賦值 var obj=null 空對象
3.有一個對象 object 不想給支 var obj //undefined 非空對象

布爾值

如果 JavaScript 預期某個位置應該是布爾值特愿,會將該位置上現(xiàn)有的值自動轉(zhuǎn)為布爾值。轉(zhuǎn)換規(guī)則是除了下面六個值被轉(zhuǎn)為false勾缭,其他值都視為true揍障。

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

注意,空數(shù)組([])和空對象({})對應的布爾值俩由,都是true毒嫡。

數(shù)值

JavaScript 內(nèi)部,所有數(shù)字都是以64位浮點數(shù)形式儲存幻梯,即使整數(shù)也是如此兜畸。所以,1與1.0是相同的碘梢,是同一個數(shù)咬摇。
JavaScript精度最多只能到53個二進制位,這意味著煞躬,絕對值小于等于2的53次方的整數(shù)肛鹏,即-253到253,都可以精確表示恩沛。由于2的53次方是一個16位的十進制數(shù)值在扰,所以簡單的法則就是,JavaScript 對15位的十進制數(shù)都可以精確處理复唤。

根據(jù)標準健田,64位浮點數(shù)的指數(shù)部分的長度是11個二進制位烛卧,意味著指數(shù)部分的最大值是2047(2的11次方減1)佛纫。也就是說妓局,64位浮點數(shù)的指數(shù)部分的值最大為2047,分出一半表示負數(shù)呈宇,則 JavaScript 能夠表示的數(shù)值范圍為21024到2-1023(開區(qū)間)好爬,超出這個范圍的數(shù)無法表示。
如果一個數(shù)大于等于2的1024次方甥啄,那么就會發(fā)生“正向溢出”存炮,即 JavaScript 無法表示這么大的數(shù),這時就會返回Infinity蜈漓。如果一個數(shù)小于等于2的-1075次方(指數(shù)部分最小值-1023穆桂,再加上小數(shù)部分的52位),那么就會發(fā)生為“負向溢出”融虽,即 JavaScript 無法表示這么小的數(shù)享完,這時會直接返回0。
使用字面量(literal)直接表示一個數(shù)值時有额,JavaScript 對整數(shù)提供四種進制的表示方法:十進制般又、十六進制、八進制巍佑、二進制茴迁。

十進制:沒有前導0的數(shù)值。
八進制:有前綴0o或0O的數(shù)值萤衰,或者有前導0堕义、且只用到0-7的八個阿拉伯數(shù)字的數(shù)值。
十六進制:有前綴0x或0X的數(shù)值脆栋。
二進制:有前綴0b或0B的數(shù)值胳螟。

字符串

字符串就是零個或多個排在一起的字符,放在單引號或雙引號之中筹吐。
反斜杠(\)在字符串內(nèi)有特殊含義糖耸,用來表示一些特殊字符,所以又稱為轉(zhuǎn)義符丘薛。
需要用反斜杠轉(zhuǎn)義的特殊字符嘉竟,主要有下面這些。

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

length 屬性:length屬性返回字符串的長度洋侨,該屬性也是無法改變的舍扰。
JavaScript 使用 Unicode 字符集。JavaScript 引擎內(nèi)部希坚,所有字符都用 Unicode 表示边苹。

對象

對象(object)是 JavaScript 語言的核心概念,也是最重要的數(shù)據(jù)類型裁僧。
什么是對象个束?簡單說慕购,對象就是一組“鍵值對”(key-value)的集合,是一種無序的復合數(shù)據(jù)集合茬底。
屬性的操作
取對象的屬性沪悲,有兩種方法,一種是使用點運算符阱表,還有一種是使用方括號運算符殿如。請注意,如果使用方括號運算符最爬,鍵名必須放在引號里面涉馁,否則會被當作變量處理。
數(shù)字鍵可以不加引號爱致,因為會自動轉(zhuǎn)成字符串谨胞。
屬性的查看
查看一個對象本身的所有屬性,可以使用Object.keys方法蒜鸡。
delete命令
delete命令用于刪除對象的屬性胯努,刪除成功后返回true。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逢防,一起剝皮案震驚了整個濱河市叶沛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌忘朝,老刑警劉巖灰署,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異局嘁,居然都是意外死亡溉箕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門悦昵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肴茄,“玉大人,你說我怎么就攤上這事但指」烟担” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵棋凳,是天一觀的道長拦坠。 經(jīng)常有香客問我,道長剩岳,這世上最難降的妖魔是什么贞滨? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮拍棕,結(jié)果婚禮上晓铆,老公的妹妹穿的比我還像新娘勺良。我一直安慰自己,他們只是感情好尤蒿,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著幅垮,像睡著了一般腰池。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上忙芒,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天示弓,我揣著相機與錄音,去河邊找鬼呵萨。 笑死奏属,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的潮峦。 我是一名探鬼主播囱皿,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼忱嘹!你這毒婦竟也來了嘱腥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤拘悦,失蹤者是張志新(化名)和其女友劉穎齿兔,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體础米,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡分苇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了屁桑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片医寿。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蘑斧,靈堂內(nèi)的尸體忽然破棺而出糟红,到底是詐尸還是另有隱情,我是刑警寧澤乌叶,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布盆偿,位于F島的核電站,受9級特大地震影響准浴,放射性物質(zhì)發(fā)生泄漏事扭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一乐横、第九天 我趴在偏房一處隱蔽的房頂上張望求橄。 院中可真熱鬧今野,春花似錦、人聲如沸罐农。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涵亏。三九已至宰睡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間气筋,已是汗流浹背拆内。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宠默,地道東北人麸恍。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像搀矫,于是被迫代替她去往敵國和親抹沪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

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