Number() 和 parseInt() 的區(qū)別

Number()parseInt() 通常用于將字符串轉(zhuǎn)換為數(shù)字哮针。

區(qū)別

Number() 轉(zhuǎn)換類型概行,而 parseInt 解析輸入值漆改。

// 解析
parseInt('32px') // 32
parseInt('5e1') // 5

// 轉(zhuǎn)換類型
Number('32px') // NaN
Number('5e1') // 50

如您所見济竹,parseInt 將最多解析第一個非數(shù)字字符。另一方面剔宪,Number 將嘗試轉(zhuǎn)換整個字符串琉兜。

parseInt 接受兩個參數(shù)塌忽。第二個參數(shù)用于指示基數(shù)癞季。

parseInt('0101') // 101
parseInt('0101', 10) // 101
parseInt('0101', 2) // 5

Number('0101') // 101

當我們傳遞特殊值(如 undefinednull)時劫瞳,它們返回不同的結(jié)果:

parseInt() // NaN
parseInt(null) // NaN
parseInt(true) // NaN
parseInt('') // NaN

Number() // 0
Number(null) // 0
Number(true) // 1
Number('') // 0

建議

始終將基數(shù)傳遞給 parseInt

parseInt 方法采用兩個參數(shù):

parseInt(value, radix)

第二個參數(shù)指定當前的數(shù)字系統(tǒng)绷柒。如果未指定,則將根據(jù)該值自動設置涮因。

如果該值以 0x0X 開頭废睦,則基數(shù)為 16(十六進制)

在其他情況下,基數(shù)為 10(十進制)养泡。

在舊版本的 JavaScript 中嗜湃,如果字符串以 0 開頭奈应,則基數(shù)設置為 8(八進制)。

parseInt('0xF') // 15
parseInt('0XF') // 15
parseInt('0xF', 16) // 15

parseInt('0xF', 10) // 0

由于該方法在不同版本的 JavaScript 和瀏覽器中可以實現(xiàn)不同购披,因此建議傳遞基數(shù)杖挣。

在解析數(shù)字之前修剪空格。

Number()parseInt 都接受輸入中的空格刚陡。但請注意惩妇,在傳遞帶有空格的值時,可能會得到不同的結(jié)果筐乳,如下所示:

parseInt('   5   ') // 5
parseInt('12 345') // 12歌殃,不是12345

為避免類似情況,應在分析之前刪除所有空格:

parseInt(value.replace(/\s+/g, ''), 10)

不要使用 new Number() 來比較數(shù)字蝙云。

Number('2') == 2 // true
Number('2') === 2 // true

new Number('2') == 2 // true
new Number('2') === 2 // false

const a = new Number('2')
const b = new Number('2')

a == b // false
a === b // false

提示

您可以使用 + 運算符氓皱,而不是使用 Number() 構(gòu)造函數(shù)將字符串轉(zhuǎn)換為數(shù)字:

+'010' // 10
+'2e1' // 20
+'0xF' // 15
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市勃刨,隨后出現(xiàn)的幾起案子波材,更是在濱河造成了極大的恐慌,老刑警劉巖身隐,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件廷区,死亡現(xiàn)場離奇詭異,居然都是意外死亡抡医,警方通過查閱死者的電腦和手機躲因,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忌傻,“玉大人大脉,你說我怎么就攤上這事∷ⅲ” “怎么了镰矿?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長俘种。 經(jīng)常有香客問我秤标,道長,這世上最難降的妖魔是什么宙刘? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任苍姜,我火速辦了婚禮,結(jié)果婚禮上悬包,老公的妹妹穿的比我還像新娘衙猪。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布垫释。 她就那樣靜靜地躺著丝格,像睡著了一般。 火紅的嫁衣襯著肌膚如雪棵譬。 梳的紋絲不亂的頭發(fā)上显蝌,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音订咸,去河邊找鬼曼尊。 笑死,一個胖子當著我的面吹牛算谈,可吹牛的內(nèi)容都是我干的涩禀。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼然眼,長吁一口氣:“原來是場噩夢啊……” “哼艾船!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起高每,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤屿岂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鲸匿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爷怀,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年带欢,在試婚紗的時候發(fā)現(xiàn)自己被綠了运授。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡乔煞,死狀恐怖吁朦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渡贾,我是刑警寧澤逗宜,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站空骚,受9級特大地震影響纺讲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜囤屹,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一熬甚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肋坚,春花似錦则涯、人聲如沸复局。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至峦剔,卻和暖如春档礁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吝沫。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工呻澜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惨险。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓羹幸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親辫愉。 傳聞我的和親對象是個殘疾皇子栅受,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

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