看完標題,入坑過的同學腦海里很快會浮現(xiàn)出這道經(jīng)典面試題,沒碰到過的同學不妨跟著樓主先來復習一遍 parseInt 的用法(主要參考 MDN)。

parseInt 是 JavaScript 中的一個全局函數(shù)(頂級函數(shù)),它會將給定的字符串以指定基數(shù)(radix/base)解析成為整數(shù)。

它的語法非常簡單:

復制代碼parseInt(string, radix)

第一個參數(shù) string 是要被解析的值,如果參數(shù)不是一個字符串,則將其轉換為字符串,字符串開頭的空白符將會被忽略。而第二個參數(shù) radix 是一個 2 到 36 之間的整數(shù)值,用于指定轉換中采用的基數(shù),如果不傳入,默認是 10,即按照十進制轉換,這里要注意一點,如果第二個參數(shù)傳入 0,和傳入 10 以及不傳入第二個參數(shù)等效。函數(shù)返回一個整數(shù)值,如果解析過程中發(fā)生錯誤,將返回 NaN。

返回 NaN 的主要有以下幾種情況:

  • 被解析參數(shù)的第一個字符無法被轉化成數(shù)值類型

  • 被解析參數(shù)數(shù)值太大,不是 radix 進制下的合法數(shù)字

  • radix 不在 [2, 36] 范圍內(nèi)(注意其實 0 也是可以的)

復制代碼console.log(parseInt('hello', 2)); // NaNconsole.log(parseInt('3', 2)); // NaN, 3 不是合法的二進制數(shù)字console.log(parseInt('3', 100)); // NaN

其實實際開發(fā)中我很少用 parseInt,而是用 + 和 ~~ 代替,因為它實在是太長了,但是很顯然 parseInt 的使用范圍更廣。

簡單回顧了 parseInt 的用法,我們來看這道題:

        		

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式