數(shù)值

JavaScript 內(nèi)部汗捡,所有數(shù)字都是以64位浮點(diǎn)數(shù)形式儲(chǔ)存,即使整數(shù)也是如此畏纲。所以扇住,1與1.0是相同的,是同一個(gè)數(shù)盗胀。

由于浮點(diǎn)數(shù)不是精確的值艘蹋,所以涉及小數(shù)的比較和運(yùn)算要注意。

0.1 + 0.2 === 0.3
// false

一個(gè)數(shù)在 JavaScript 內(nèi)部實(shí)際的表示形式票灰。

(-1)^符號(hào)位 * 1.xx...xx * 2^指數(shù)位

精度最多只能到53個(gè)二進(jìn)制位簿训,這意味著咱娶,絕對(duì)值小于2的53次方的整數(shù),即-(253-1)到253-1强品,都可以精確表示。

表示方法:
1屈糊、字面形式:十進(jìn)制 十六進(jìn)制等
2的榛、科學(xué)計(jì)數(shù):

123e3 // 123000
123e-3 // 0.123

當(dāng)小數(shù)點(diǎn)前的數(shù)字多于21位或小數(shù)點(diǎn)后的零多于5個(gè),數(shù)值自動(dòng)轉(zhuǎn)為科學(xué)計(jì)數(shù)法表示逻锐。

進(jìn)制:
十進(jìn)制:沒(méi)有前導(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ù)值盏档。

默認(rèn)情況下凶掰,JavaScript 內(nèi)部會(huì)自動(dòng)將八進(jìn)制、十六進(jìn)制蜈亩、二進(jìn)制轉(zhuǎn)為十進(jìn)制懦窘。

特殊數(shù)值:
1、正零和負(fù)零
在JavaScript內(nèi)部稚配,實(shí)際上存在2個(gè)0:一個(gè)是+0畅涂,一個(gè)是-0。它們是等價(jià)的道川。
唯一有區(qū)別的場(chǎng)合是午衰,+0或-0當(dāng)作分母,返回的值是不相等的冒萄。除以正零得到+Infinity臊岸,除以負(fù)零得到-Infinity。

2宦言、Infinity
Infinity表示“無(wú)窮”扇单,用來(lái)表示兩種場(chǎng)景。
一種是一個(gè)正的數(shù)值太大奠旺,或一個(gè)負(fù)的數(shù)值太小蜘澜,無(wú)法表示;
另一種是非0數(shù)值除以0响疚,得到Infinity鄙信。

Infinity有正負(fù)之分,Infinity表示正的無(wú)窮忿晕,-Infinity表示負(fù)的無(wú)窮装诡。
Infinity大于一切數(shù)值(除了NaN),-Infinity小于一切數(shù)值(除了NaN)。
Infinity與NaN比較鸦采,總是返回false宾巍。

四則運(yùn)算:符合無(wú)窮的計(jì)算規(guī)則

5 / Infinity // 0

0 * Infinity // NaN
0 / Infinity // 0
Infinity / 0 // Infinity

Infinity與null計(jì)算時(shí),null會(huì)轉(zhuǎn)成0渔伯,等同于與0的計(jì)算顶霞。

null * Infinity // NaN
null / Infinity // 0
Infinity / null // Infinity

Infinity與undefined計(jì)算,返回的都是NaN锣吼。
Infinity加上或乘以Infinity选浑,返回的還是Infinity。
Infinity減去或除以Infinity玄叠,得到NaN古徒。

isFinite函數(shù)返回一個(gè)布爾值,檢查某個(gè)值是不是正常數(shù)值读恃,而不是Infinity隧膘。
···
isFinite(Infinity) // false
isFinite(-1) // true
isFinite(true) // true
isFinite(NaN) // false

···

3、NaN
NaN是 JavaScript 的特殊值狐粱,表示“非數(shù)字”(Not a Number)

5 - 'x' // NaN

0 / 0 // NaN

NaN不是一種獨(dú)立的數(shù)據(jù)類(lèi)型舀寓,而是一種特殊數(shù)值,它的數(shù)據(jù)類(lèi)型依然屬于Number

NaN不等于任何值肌蜻,包括它本身互墓。
NaN在布爾運(yùn)算時(shí)被當(dāng)作false。
NaN與任何數(shù)(包括它自己)的運(yùn)算蒋搜,得到的都是NaN篡撵。

isNaN方法可以用來(lái)判斷一個(gè)值是否為NaN。
isNaN只對(duì)數(shù)值有效豆挽,如果傳入其他值育谬,會(huì)被先轉(zhuǎn)成數(shù)值。對(duì)于字符串帮哈、對(duì)象和數(shù)組膛檀,isNaN也返回true。
但是娘侍,對(duì)于空數(shù)組和只有一個(gè)數(shù)值成員的數(shù)組咖刃,isNaN返回false。(Number方法的參數(shù)是對(duì)象時(shí)憾筏,將返回NaN嚎杨,除非是包含單個(gè)數(shù)值的數(shù)組。)

isNaN([]) // false
isNaN([123]) // false
isNaN(['123']) // false

判斷NaN更可靠的方法是氧腰,利用NaN是JavaScript之中唯一不等于自身的值這個(gè)特點(diǎn)枫浙,進(jìn)行判斷刨肃。

function myIsNaN(value) {
  return value !== value;
}

全局方法:
1、parseInt()
parseInt方法用于將字符串轉(zhuǎn)為整數(shù)箩帚。
如果字符串頭部有空格真友,空格會(huì)被自動(dòng)去除。
如果parseInt的參數(shù)不是字符串膏潮,則會(huì)先轉(zhuǎn)為字符串再轉(zhuǎn)換锻狗。

parseInt(011, 2) // NaN
// 011轉(zhuǎn)為9

parseInt('011', 2) // 3
parseInt('8a') // 8
parseInt('12**') // 12
parseInt('12.34') // 12
parseInt('15e2') // 15
parseInt('15px') // 15

如果字符串的第一個(gè)字符不能轉(zhuǎn)化為數(shù)字(后面跟著數(shù)字的正負(fù)號(hào)除外),返回NaN焕参。

parseInt的返回值只有兩種可能,不是一個(gè)十進(jìn)制整數(shù)油额,就是NaN叠纷。
如果字符串以0x或0X開(kāi)頭,parseInt會(huì)將其按照十六進(jìn)制數(shù)解析潦嘶。
如果字符串以0開(kāi)頭涩嚣,將其按照10進(jìn)制解析。
對(duì)于那些會(huì)自動(dòng)轉(zhuǎn)為科學(xué)計(jì)數(shù)法的數(shù)字掂僵,parseInt會(huì)將科學(xué)計(jì)數(shù)法的表示方法視為字符串航厚,因此導(dǎo)致一些奇怪的結(jié)果。

parseInt(1000000000000000000000.5) // 1
// 等同于
parseInt('1e+21') // 1

parseInt方法還可以接受第二個(gè)參數(shù)(2到36之間)锰蓬,表示被解析的值的進(jìn)制幔睬,返回該值對(duì)應(yīng)的十進(jìn)制數(shù)。
如果第二個(gè)參數(shù)不是數(shù)值芹扭,會(huì)被自動(dòng)轉(zhuǎn)為一個(gè)整數(shù)麻顶。這個(gè)整數(shù)只有在2到36之間,才能得到有意義的結(jié)果舱卡,超出這個(gè)范圍辅肾,則返回NaN。如果第二個(gè)參數(shù)是0轮锥、undefined和null矫钓,則直接忽略。

parseInt('10', 37) // NaN
parseInt('10', 1) // NaN
parseInt('10', 0) // 10
parseInt('10', null) // 10
parseInt('10', undefined) // 10

如果字符串包含對(duì)于指定進(jìn)制無(wú)意義的字符舍杜,則從最高位開(kāi)始新娜,只返回可以轉(zhuǎn)換的數(shù)值。如果最高位無(wú)法轉(zhuǎn)換蝴簇,則直接返回NaN杯活。

parseInt('1546', 2) // 1
parseInt('546', 2) // NaN

2、parseFloat()
parseFloat方法用于將一個(gè)字符串轉(zhuǎn)為浮點(diǎn)數(shù)熬词。
如果字符串符合科學(xué)計(jì)數(shù)法旁钧,則會(huì)進(jìn)行相應(yīng)的轉(zhuǎn)換吸重。
如果字符串包含不能轉(zhuǎn)為浮點(diǎn)數(shù)的字符,則不再進(jìn)行往后轉(zhuǎn)換歪今,返回已經(jīng)轉(zhuǎn)好的部分嚎幸。
parseFloat方法會(huì)自動(dòng)過(guò)濾字符串前導(dǎo)的空格。
如果參數(shù)不是字符串寄猩,或者字符串的第一個(gè)字符不能轉(zhuǎn)化為浮點(diǎn)數(shù)嫉晶,則返回NaN。
parseFloat會(huì)將空字符串轉(zhuǎn)為NaN田篇。

parseFloat() 與 Number() 區(qū)別

parseFloat(true)  // NaN
Number(true) // 1

parseFloat(null) // NaN
Number(null) // 0

parseFloat('') // NaN
Number('') // 0

parseFloat('123.45#') // 123.45
Number('123.45#') // NaN

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末替废,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子泊柬,更是在濱河造成了極大的恐慌椎镣,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兽赁,死亡現(xiàn)場(chǎng)離奇詭異状答,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)刀崖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)惊科,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人亮钦,你說(shuō)我怎么就攤上這事馆截。” “怎么了或悲?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵孙咪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我巡语,道長(zhǎng)翎蹈,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任男公,我火速辦了婚禮荤堪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘枢赔。我一直安慰自己澄阳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布踏拜。 她就那樣靜靜地躺著碎赢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪速梗。 梳的紋絲不亂的頭發(fā)上肮塞,一...
    開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
  • 那天襟齿,我揣著相機(jī)與錄音,去河邊找鬼枕赵。 笑死猜欺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拷窜。 我是一名探鬼主播开皿,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼篮昧!你這毒婦竟也來(lái)了赋荆?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤懊昨,失蹤者是張志新(化名)和其女友劉穎糠睡,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體疚颊,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年信认,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了材义。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嫁赏,死狀恐怖其掂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情潦蝇,我是刑警寧澤款熬,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站攘乒,受9級(jí)特大地震影響贤牛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜则酝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一殉簸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沽讹,春花似錦般卑、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至挚瘟,卻和暖如春叹谁,著一層夾襖步出監(jiān)牢的瞬間饲梭,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工本慕, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留排拷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓锅尘,卻偏偏與公主長(zhǎng)得像监氢,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子藤违,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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

  • 有三個(gè)函數(shù)可以把非數(shù)值轉(zhuǎn)化為數(shù)值 Number () parseInt () parseFloat () Numb...
    輝夜乀閱讀 658評(píng)論 0 0
  • 1顿乒、標(biāo)識(shí)符 標(biāo)識(shí)符是指變量议街、函數(shù)、屬性的名字璧榄,或函數(shù)的參數(shù)特漩。 格式規(guī)則: 第一個(gè)字符必須是一個(gè)字母、下劃線(_)或...
    霜天曉閱讀 702評(píng)論 0 0
  • 朋友們看我曬在西藏的照片骨杂,發(fā)西藏的游記涂身,最多的贊揚(yáng)就是——有勇氣!佩服搓蚪!最關(guān)心的就是——有沒(méi)有高反蛤售? 其實(shí),大家一...
    無(wú)色生香閱讀 1,806評(píng)論 2 63
  • 不管是夫妻關(guān)系還是親子關(guān)系妒潭,我們?cè)谙嗵幹卸即嬖谝恍┱`區(qū)悴能。最親近的人,往往是最容易被我們忽視的雳灾、最容易被我們傷害的人...
    平安是福_ef95閱讀 302評(píng)論 0 0
  • 【楔子】 誰(shuí)陪你看這青磚黛瓦佑女,小橋人家记靡? 誰(shuí)又伴你睥睨沙場(chǎng),君臨天下团驱? 江南煙雨摸吠,我只等你。 【初見(jiàn)】 江南四月嚎花,...
    鰥傾閱讀 237評(píng)論 0 0