日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

关于parseInt面试题

發(fā)布時(shí)間:2023/12/31 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于parseInt面试题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

let arr = [27.2,0,1,'0013',123, '14px', 0013] arr = arr.map(parseInt); console.log(arr);

parsetInt([val],[radix])處理機(jī)制

? [val] 必須是一個(gè)字符串,如果不是,則也要默認(rèn)轉(zhuǎn)換為字符串

? [radix]不設(shè)置(或者寫(xiě)的是零):正常都是按照10處理的,如果字符串是以”0x“開(kāi)始的,默認(rèn)值是16

? 先在[val]中,找到所有符合[radix]進(jìn)制的內(nèi)容(從左到右查找,直到遇到不符合的為止「不論后面是否還有符合進(jìn)制的,都不在查找了」),然后再把找到的內(nèi)容看做[radix]進(jìn)制,轉(zhuǎn)換為十進(jìn)制

[radix]范圍 2~36,除了0以外(0->10/16),不在這個(gè)范圍內(nèi),結(jié)果都是NaN

arr = arr.map((item, index) => {// arr.map原本的意思:// 循環(huán)遍歷數(shù)組中的某一項(xiàng)就會(huì)觸發(fā)回調(diào)函數(shù)// 每一次還會(huì)傳遞當(dāng)前項(xiàng)和當(dāng)前項(xiàng)的索引})
  • 但是這道題map里不是我們自定義的匿名的回調(diào)函數(shù)了, 而是放的parseInt,所以parseInt現(xiàn)在是map循環(huán)時(shí)的回調(diào)函數(shù)。

  • parseInt也是個(gè)函數(shù),比較常見(jiàn)的用法就是: parseInt(‘12px12’) => 從左側(cè)開(kāi)始查找有效字符,遇到無(wú)效字符就停止查找=>12

  • parseInt特點(diǎn):括號(hào)里不管是什么值,都要轉(zhuǎn)成字符串,從最左側(cè)查找,遇到無(wú)效字符停止查找

  • arr.map遍歷第一項(xiàng)的時(shí)候就相當(dāng)于把回調(diào)函數(shù)parseInt執(zhí)行,并且傳了兩個(gè)參數(shù)item和index

    所以總體來(lái)說(shuō)arr.map會(huì)循環(huán)5次

    parseInt(‘27.2’, 0) => parseInt不識(shí)別小數(shù)點(diǎn) => parseInt(‘27’, 0) => 27

    parseInt(0, 1) => [radix]范圍 2~36 不在這個(gè)范圍都返回NaN => NaN

    parseInt(1, 2) => 1* 2^0 = 1

    parseInt(‘0013’, 3) => 3進(jìn)制數(shù) (范圍0,1,2),所以會(huì)轉(zhuǎn)化為001 => 1* 3^0 = 1

    parseInt(‘123’, 4) => 4進(jìn)制轉(zhuǎn)為10進(jìn)制 1* 4^2+ 2 *4 ^ 1+ 3 *4 ^ 0= 16 + 8 + 3 = 27

    parseInt(‘14px’, 5) => 5進(jìn)制數(shù)轉(zhuǎn)為10進(jìn)制 先轉(zhuǎn)化為 14 => 1* 5^1 + 4* 5^0 = 5 + 4 = 9

    parseInt(0013, 6) => 以0開(kāi)頭的數(shù)字會(huì)被認(rèn)為是8進(jìn)制數(shù),0013轉(zhuǎn)化為8進(jìn)制數(shù) 1* 8^1 + 3* 8^0 = 11。

    然后再轉(zhuǎn)為10進(jìn)制 1* 6^1 + 1*6^0 = 6 + 1 = 7

所以最終答案

需要注意的點(diǎn):
1: 注意parseInt函數(shù)的兩個(gè)參數(shù)
2:進(jìn)制轉(zhuǎn)化問(wèn)題

如果把 ‘0013’ 替換為"0012"

將會(huì)是這樣轉(zhuǎn)化:

3進(jìn)制數(shù) (范圍0,1,2),所以會(huì)轉(zhuǎn)化為 0012 => 1* 3^1 + 2* 3^0 = 5

總結(jié)

以上是生活随笔為你收集整理的关于parseInt面试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。