美文网首页
数据类型相互转换-转为数字

数据类型相互转换-转为数字

作者: maomizone | 来源:发表于2022-04-17 00:31 被阅读0次

Number([val])

  • 一般用于浏览器的隐式转换中
    @1 数学运算
    @2 isNaN检测
    @3 ==比较
    ...
  • 规则
    @1 字符串转数字:空串变为0,如果出现任何非有效数字字符,结果为NaN:Number('12px')->NaN
    @2 布尔值转数字:true->1   false->0
    @3 null->0   undefined->NaN
    @4 Symbol无法转为数字,会报错:Uncaught TypeError: Cannot convert a Symbol value to a number
    @5 BigInt去除n(超过安全数字的,会按照科学计数法处理)
    @6 对象转为数字:
    • 先调用对象的Symbol.toPrimitive方法,如果不存在这个方法
    • 再调用对象的valueOf()获取原始值,如果获取的不是原始值(基本数据类型)
    • 再调用对象的toString()方法,将其转变为字符串
    • 最后再把字符串基于Number方法转换为数字

parseInt([val], [radix])   parseFloat([val])

  • 一般用于手动转换
  • 规则:

@1 [val]值必须是字符串,如果不是先转换为字符串,基于方法String([val]),这个方法遇到对象可以参考上方的对象转数字@6,只是最后一步没有
@2 [radix]进制
- 如果不写,或者写0:默认是10(特殊情况:如果字符串以0x开始的,默认值是16)
- 有效范围2-36(如果不在这个区间,直接返回NaN)
@3 从[val]字符串左侧第一个字符开始查找,查找出符合[radix]进制的值(遇到不符合的就结束查找),把找到的内容,按照[radix]进制转换为10进制

   console.log(parseInt('10102px13', 2)); // 10
   // 找到符合二进制的'1010'
   // 二进制转十进制:按权展开求和
   // 1*2^3 + 0*2^2 + 1**2^1 + 0*2^0 = 10
     console.log(parseInt(0013, 2)); // 3
     // js遇到以0开头的数字,会默认把其按照8进制转为10进制,然后再进行其他的操作
     // 0013先8转10 0*8^3 + 0*8^2 + 1*8^1 + 3*8^0 = 11
     // parseInt('11', 2)
     // 二进制转十进制:按权展开求和
     // 1*2^1 + 1*2^0 = 3
Snipaste_2022-04-17_00-33-57.png

相关文章

  • 数据类型相互转换-转为数字

    Number([val]) 一般用于浏览器的隐式转换中@1 数学运算@2 isNaN检测@3 ==比较... 规则...

  • JS强制类型转换

    1.其他数据类型转为Number 字符串转数字: 布尔转数字: 转换方式二:

  • JS 里的数据类型转换

    一、数据类型转换 不同数据类型之间转换方法: (一)、任意数据类型转为string 1.number转为strin...

  • Java基础进阶(二)

    1.数据类型转换 在混合运算中 byte、short、char 之间不会相互转换,会自动转为int类型去运算。其他...

  • 算法题常用方法

    一、数据类型相互转换 1.任何 → 字符串 2.任何 → 数字 长得像数字 '数字xxxxx' 'xxxxx数字x...

  • 语法专题---数据类型的转换

    强制转换Number():手动转为数字String():手动转为字符串Boolean():手动转为布尔值 自动转换...

  • 2018-12-25(javascript基础笔记)

    数据类型转换 1.string 将一个数据类型强制转换为其他的数据类型 类型转换主要指,将其他数据类型,转为 st...

  • 隐式数据类型转换

    任何数据类型和数字比较都先(Number)转为数字 任何数据类型和字符串比较都先转为(toString)字符串在转...

  • JS入门之数据类型(下)

    四、 数据类型转换 显式转换 1. 转为数值类型 (1). Number();①. Booleantrue - 1...

  • iOS-类型转换

    数据类型与char*类型的相互转换(NSData <-> char *) 字符串类型与数据类型的相互转换(NSSt...

网友评论

      本文标题:数据类型相互转换-转为数字

      本文链接:https://www.haomeiwen.com/subject/exekertx.html