日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

JS 进制转换的理解

發布時間:2025/5/22 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS 进制转换的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該事情的由來是來自于一個面試題,題目是這樣的,[1,2,3].map(parseInt)的結果是什么?

作為菜鳥的我們一定是覺得分別把1,2,3分別交給parseInt,無非就是1,2,3嘛。其實結果輸出是這樣的,1,NaN,NaN,為什么會這樣?

那就涉及到兩個知識點了,首先map的時候,里面傳一個函數,那么map會默認給函數傳兩個參數:value,index,那么這兩個參數傳給parseInt的時候,代表的意思就不一樣了,parseInt函數接收兩個參數第一個是要轉換的字符串,第二個是代表的按幾進制進行轉換,注意:是按幾進制進行轉換,而不是轉成了幾進制。

那么再來看[1,2,3].map(parseInt),

第一次循環,傳給parseInt(1,0),把1按0進制轉換,0默認表示10進制,然后輸出1。

第二次循環,傳給parseInt(2,1),把2按1進制轉換,引擎懵逼了,1進制中根本不可能出現2這個數字好嗎?我咋給你解析,無法解析,給了個NaN。

第三次循環,傳給parseInt(3,2),把3按2進制轉換,引擎又懵逼了,啥玩意兒?2進制中根本不可能出現3這個數字好嗎?我咋給你解析,無法解析,又給了個NaN。

parseInt第二個參數的范圍是為介于2-36之間的數。

那么我如果就想把一個十進制的數,轉換成固定的進制數呢?比如我想把8轉換成2進制數, 應該是1000,怎么做?

那就應該使用Number.prototype.toString(radix),radix表示的也是要轉成幾進制,范圍是介于2-36之間的數。

var a = 8; a.toString(2);或者(8).toString(2);或者Number(8).toString(2);

注意調toString的時候,必須保證調用者是Number類型,因為只有Number原型下的toString方法才支持radix轉換,其他的像Object.prototype.toString,String.prototype.toString,Array.prototype.toString,Function.prototype.toString等等,都不接受參數,所以要使用該方法之前需要將調用者轉成Number類型。

轉載于:https://www.cnblogs.com/liujiekun/p/11321230.html

總結

以上是生活随笔為你收集整理的JS 进制转换的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。