- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > JavaScript >
- 淺談JavaScript中的parseInt()的妙用
寫(xiě)這篇博客的起因是今天在刷leetcode的每日一題,是一道的題,感興趣的話(huà)可以點(diǎn)擊題目名稱(chēng)去看一下具體描述。在我多次debug終于成功提交之后,去評論區看了一下大佬們的解題思路,看完之后不禁感嘆javascript中原來(lái)parseInt( )已經(jīng)這么優(yōu)秀了啊。這告訴我了一個(gè)道理,我們自認為再熟悉不過(guò)的api,可能我們并沒(méi)有真正意義上的掌握?!?/p>
/** * @param {string} str * @return {number} */ var myAtoi = function(str) { str = str.trim(); //截取字符串第一個(gè)字符 var firstChar = str.charAt(),res = '',regSymbol = /^[\-\+]{1}/,regNumber = /^[0-9]{1}/; if(!regSymbol.test(firstChar) && !regNumber.test(firstChar)){ return 0; } //第一個(gè)字符為+或者- if(regSymbol.test(firstChar)){ var sliceStr = str.slice(1,str.length); for(var i=0;i<sliceStr.length;i++){ if(regNumber.test(sliceStr.charAt(i))){ res += sliceStr.charAt(i); }else{ break; } } (res.length) ? res = parseInt(firstChar + res) : res = 0; if(firstChar == '-' && res < Math.pow(-2,31)){ res = Math.pow(-2,31); } if(firstChar == '+' && res > Math.pow(2,31) - 1){ res = Math.pow(2,31) - 1; } return res; } //第一個(gè)字符為數字 if(regNumber.test(firstChar)){ var sliceStr = str; for(var i=0;i<sliceStr.length;i++){ if(regNumber.test(sliceStr.charAt(i))){ res += sliceStr.charAt(i); }else{ break; } } if(parseInt(res) > Math.pow(2,31) - 1){ res = Math.pow(2,31) - 1; } return res; } };
/** * @param {string} str * @return {number} */ var myAtoi = function(str) { const number = parseInt(str, 10); if(isNaN(number)) { return 0; } else if (number < Math.pow(-2, 31) || number > Math.pow(2, 31) - 1) { return number < Math.pow(-2, 31) ? Math.pow(-2, 31) : Math.pow(2, 31) - 1; } else { return number; } };
通過(guò)對比,我們了解到j(luò )avascript中的parseInt()已經(jīng)做了截取空字符串、首字母判斷、number類(lèi)型結果返回等一系列操作。剛好與今天的每日一題的需求完美契合,使用parseInt()來(lái)解決這個(gè)題目簡(jiǎn)直不要太爽。
到此這篇關(guān)于淺談JavaScript中的parseInt()的妙用的文章就介紹到這了,更多相關(guān)JavaScript parseInt()內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站