看完標題,入坑過的同學腦海里很快會浮現(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 的用法,我們來看這道題:
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26