JS parseInt

MDN:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

parseInt 接收两个参数,第一个参数为要解析的字符串,第二个参数为解析使用的进制

提示:如果第一个参数不是字符串,将始终先转换为字符串 —— 这意味着,如果想要对数字取整,不要使用 parseInt,而应该使用 Math.floor 向下取整 / Math.ceil 向上取整 / Math.round 四舍五入

具体的解析规则为

  • 当不传递第二个参数时

    • 如果第一个参数以 0x 开头,则使用 16 进制解析

    • 如果第一个参数以 0 开头

      • 在 ES5 及以后,使用 10 进制解析

      • 在 ES5 之前,如果可以使用 8 进制解析(即字符串只包括 0-7 之间的字符)则使用 8 进制解析,否则使用 10 进制解析

    • 其他情形,使用 10 进制解析

  • 当第二个参数传递的参数有效时(2-36)

    • 使用传递的进制解析

  • 当第二个参数传递的参数无效时

    • 直接返回 NaN