教你怎样快速将将10进制转换为二进制

一种快速将将10进制转换为二进制的方法

今天原本无心中发现NumbertoString方法不是彻底的继承自Object原型上,而是能够给其传参数,这就引发了我比较大的兴趣。我就想知道这个传入的参数到底有啥用?还有Number上的toString方法到底和Object上的toString方法有啥区别。javascript

不一样数据类型的toString方法分别返回啥

  1. Object 对象的toString 返回的就是表示对象数据类型的字符串 [object Object],进而咱们能够根据对象toString方法使用Object.prototype.toString.call([arry | number | string | ...]) 来达到精确判断数据类型的功能好比:java

    const a = []
    const b = ''
    Object.prototype.toString.call(a) // [object Array]
    Object.prototype.toString.call(b) // [object String]
    
    复制代码
  2. Array上的toString方法分为两种状况数组

    • 数组内元素是简单数据类型会将数组内的元素用,合并成字符串返回例如:
    const a = [1,2,3,4]
    a.toString() // 1,2,3,4
    复制代码
    • 数组内元素是复杂数据类型这种状况下会调用子元素的toString方法
    const a = [{},{}]
    a.toString() // [object Object],[object Object]
    const b = [()=>{},()=>{}]
    b.toString() // ()=>{},()=>{}
    const c = [[1,2],[3,4]]
    c.toString() // 1,2,3,4
    复制代码

    延申一下,因此咱们彻底能够经过数组的toString方法来实现join的简单功能函数

  3. Function上的toString方法,这个就比较简单了就是纯粹的将函数体做为字符串返回ui

    var a = () => {}
        a.toString() // ()=>{}
    复制代码
  4. StringtoString方法,就是纯粹的返回字符串spa

不同凡响的Number类型的toString方法

Number类型的toString方法到底是啥样的呢?让咱们来看看prototype

var a = 1
a.toString() // 1
复制代码

看起来好像也没有什么神奇的地方啊~也就是纯粹的将number转换为字符串而已,别着急看看下面的例子code

var a = 2
a.toString(2) // 10
复制代码

是否是很神奇这里直接将10进制的数转换为了二进制数的字符串表示,根据规定这里toString的参数为要转换的进制范围为2-36,利用这个特性咱们很容易的就能够将一个10进制的数转换为任意2-36进制。对象

其实这里的转换规则还有其余规定感兴趣的能够看看MDN和ECMA的具体规定继承

MDN中关于Number.prototype.toString的介绍

相关文章
相关标签/搜索