关于parseInt进行进制的转换

摘要:
3.ParseInt参数。很少有人知道心烦意乱的parseInt不能很好地舍入,还有其他参数。是的,它有两个参数,因此不使用上面的第三个参数。再多说parseInt是没有用的。看看W3C是怎么说的。ParseInt指的是由小数位数解析的小数位数。这意味着parseInt将解析为1,因为半径为0。

["1", "2", "3"].map(parseInt) 答案是多少?

考察点:1 . ES5的map方法,接收参数并且callback计算并且返回重组。

    2 . 这种写法是个什么概念呢,其实就是["1", "2", "3"].map(parseInt(elem,index,thisArr))

    3 . parseInt的参数。

    我们一个一个考点说。

    1 . ES5的数组操作方法map,用来把每一个根据数组参数经过回掉callback返回一个新数组,callback可以接收三个参数,elem表示数组的元素,index,下表,thisArr,所在的数组。

    例如

       [ 1 , 2 , 3 ].map(function(elem,index,thisArr){

          return elem*index

      })

    就会得出[ 0 , 2 , 6 ],即每一个数组中的元素乘以他的下标。

    2 . ["1", "2", "3"].map(parseInt) 会怎么样呢

    parseInt会取整,返回一个整数,字符串变成数字再取整。但是没有括号是什么鬼。没有括号,会发生的就是把能传的参数全传进去。大不了传的多了反正不影响,就会发生三次取整。

    分别是parseInt("1",0,["1", "2", "3"]),

       parseInt("2",1,["1", "2", "3"])

       parseInt("3",2,["1", "2", "3"])

    然后返回值重组为一个数组。

    3 . parseInt的参数。

    很少有人知道丧心病狂的parseInt它不好好取整,还有其他的参数,没错,它有俩个参数,所以上述的第三个参数是用不到的。

    parseInt(string, radix)
    
   关于parseInt进行进制的转换第1张

    多说无益,看看W3C说的,他又是啥子意思捏。以多少来解析,就是多少进制,就是说parseInt("2",4)就是把2用4进制的方式解析成10进制的数字。

    意思就是parseInt("1",0) 他会因为radix是0,会解析出来为 1 。

console.log(parseInt(10,2))      //2  以二进制
console.log(parseInt(101,2))      //5  以二进制
console.log(parseInt(101,3))      //10   以三进制
console.log(parseInt(401,36))      //40*36的平方+0*36+1*36的0次方
    卧槽?我听过2 4 8 16 还没听过 3 , 36 ,是的,不光有这两货,js的parseInt可以解析成2-36的所有进制,原理其实都一样。

     那么所以parseInt( "1" , 0 )是 1 ,parseInt( "2" , 1 ) 是 NaN因为没有1进制(自己思考1进制怎么玩,这个问题很强大),parseInt( "3" , 2 ) 这个怎么搞,3*2的0次方么 。 应该是 1 啊。

     但是一个2进制的数字,他会出现3么,二进制当然全是01010101了。所以3其实是没有办法解析的 。 也是NaN 。因为3不是2进制的数字,没办法解析成10进制

     那么这个题的答案就通了 为 [ 1 , NaN , NaN ]

    反思:我们可以学到什么呢?

    1 . 伟大的ES5数组操作方法还有很多,都挺不错,反正以前我都手写过,当时好难受。

    2 . ["1", "2", "3"].map(parseInt) 这个没有参数的调用函数方法有没有比较炫酷呢,简单威武,自动传参,但是也有自己的缺点,有时候杂就不想让他传呢

    3 . parseInt用法其实很厉害的,可以试试把颜色16进制转换成rgba那种的。

 

    下面的是用上面的知识写的16进制颜色转化rgb

    

var a = "#ffaacc";
function colorToRGB(color){
    var color = color.split("#")[1]
    var colorArr = [] ;
    for(var i = 0 ; i<color.length ; i=i+2){
        colorArr[i/2] = [ color[i] , color[i+1] ].join("")
    }    
    return colorArr.map(function(elem){
        return parseInt(elem,16)
    }).toString()
}
console.log(colorToRGB(a))

免责声明:文章转载自《关于parseInt进行进制的转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spring boot--全局异常监听django项目搭建及Session使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java对文件的16进制读取和操作

大家可以参考一下源代码的相关部分注释,然后写出自己的16进制处理程序。有几个重点地方:16进制字符串-》10进制数 int input = Integer.parseInt("Str", 16)10进制整数-》16进制字符串 String hex = Integer.toHexString(int)文件读取方法 作为2进制文件直接读取,一个byte为单位的...

确定进制

描述 6 * 9 = 42 对于十进制来说是错误的,但是对于13进制来说是正确的。即, 6(13)* 9(13)= 42(13), 而 42(13)= 4 * 131+ 2 * 130= 54(10)。 你的任务是写一段程序,读入三个整数p、q和 r,然后确定一个进制 B(2<=B<=16) 使得 p * q = r。 如果 B 有很多选择,...

搞懂js中小数运算精度问题原因及解决办法

js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其他强类型语言中的double类型(双精度浮点型),不区分浮点型和整数型。 number类型不同进制 number 有四种进制表示方法,十进制,二进制,八进制和十六进制 表示方法 二进制: 0B或者0b (数字0和字母B或者小写字母b) ,后接...

利用书签栏作插入时失败告终

想用添加书签的方式,修改书签中的地址栏来修改在IE中当前页面的代码.结果还是不行. 在修改IE设置后(不禁用IE运行javascript脚本),已可以让书签alter("ABC")了,但还是没有修改到页中的表格... 看来javascript还是写不够 下面是一些失败的代码 javascript:( function f_IsEnable(r, c,sta...

Windbg实用手册

Windbg工作中用的不多,所以命令老是记不住,每次使用都要重新查命令,挺烦。 趁这次培训的机会好好测试和总结了一下,下次再用就方便多了。 在这里一起共享一下,如果有错误,请指正。 基本知识和常用命令 (1) Windbg下载地址http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx...

perl5 第二章 简单变量

第二章 简单变量  by flamephoenix 一、整型 二、浮点数 三、字符串 基本上,简单变量就是一个数据单元,这个单元可以是数字或字符串。一、整型 1、整型   PERL最常用的简单变量,由于其与其它语言基本相同,不再赘述。   例:   $x = 12345;   if (1217 + 116 == 1333) {   # statement...