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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JS 进制转换的理解

發布時間:2025/5/22 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 进制转换的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

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