Number conversions using parseInt() and toString() in JavaScript

Anyone who codes in JavaScript regularly has made use of parseInt() to convert an integer that's expressed as a string into an actual number type that one can use in calculations.

The MDN defines the use of parseInt() as follows:

复制代码
parseInt(string)
parseInt(string, radix)

string is the value to parse. In the case that it's not a string type, it is internally converted to a string before the parsing occurs.

radix is a value between 2 and 36 which is the base of the string parameter value. It does NOT default to base 10 if this parameter is omitted. For example, a string with the prefix "0x" will default to base 16, hexadecimal. To learn in greater detail how various inputs are treated, please refer to the MDN article on parseInt() for more details.

parseInt()

parseInt() can be used to convert numbers to and from various bases if one understands how the radix parameter functions.

For example:

复制代码
parseInt("23", 4)
parseInt("0x23")
parseInt("23", 2)

will output:

复制代码
11
35
NaN

In each case we are answering the question: "What is the base 10 value of 23 in base 4? in base 16? in base 2?"

  1. "23" in base 4 is 2 * 4 + 3, or 11 in base 10.
  2. "0x23" implies base 16. 2 * 16 + 3, or 35 in base 10
  3. "23" in base 2 is NaN, since base 2 digits can only include 0 and 1.

Imagine how useful this could be if someone needs you to quickly interpret binary "1110010"!

复制代码
parseInt("1110010", 2)

will give us the correct base 10 number:

复制代码
114

toString(radix)

Using toString(radix) with a number object overrides the the Object object method toString(). When used with number objects, toString(radix) returns a string representation of the number object in the specified base.

toString(radix) answers the question: "How do I write the value 23 in base 4? in base 16? in base 2?"

复制代码
let num = 23

num.toString(4)
num.toString(16)
num.toString(2)

And the output:

复制代码
113
17
10111

In effect, parseInt() and toString() act as inverses of each other:

复制代码
let num = 23

parseInt(num.toString(4), 4)
parseInt(num.toString(16), 16)
parseInt(num.toString(2), 2)

And the result:

复制代码
23
23
23

toString(2) is particularly useful if you need to generate the binary representation of a number for any reason. Or how about converting a hexadecimal number (base 16) into its binary equivalent?

复制代码
parseInt("1F4", 16).toString(2)

"111110100"

(in case you were wondering, this is 500 in base 10!)

I hope this brief exploration of these two related methods leaves you with a greater understanding of how they go beyond converting integers to strings and vice versa. They can be used to translate numbers to and from other bases, as well!

At last ,If you want to protects your javascript code from being illegally analyzed, hacked, and stolen.You can obfuscate js with js-obfuscator or jshaman etc.

Happy Coding!

相关推荐
蓝瑟4 分钟前
告别重复造轮子!业务组件多场景复用实战指南
前端·javascript·设计模式
老华带你飞6 分钟前
旅游|基于Java旅游信息系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·旅游
爱学习的梵高先生36 分钟前
C++:基础知识
开发语言·c++·算法
oioihoii40 分钟前
C++对象生命周期与析构顺序深度解析
java·开发语言·c++
IMPYLH43 分钟前
Lua 的 tonumber 函数
开发语言·笔记·后端·junit·游戏引擎·lua
渴望成为python大神的前端小菜鸟1 小时前
浏览器及其他 面试题
前端·javascript·ajax·面试题·浏览器
It's now1 小时前
BeanRegistrar 的企业级应用场景及最佳实践
java·开发语言·spring
1024肥宅1 小时前
手写 new 操作符和 instanceof:深入理解 JavaScript 对象创建与原型链检测
前端·javascript·ecmascript 6
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 基于Java的小区物业管理系统APP的设计与实现为例,包含答辩的问题和答案
java·开发语言
繁华似锦respect1 小时前
C++ & Linux 中 GDB 调试与内存泄漏检测详解
linux·c语言·开发语言·c++·windows·算法