parseInt
故事的开始从一个色盘的 HSV 进制转换开始
当我在控制台输入 👇👇👇👇👇👇
parseInt(011, 2); // --> NaN;
parseInt(11, 2); // --> 3麻了 我麻了
parseInt
以下为 W3C 上的定义
parseInt() 函数可解析一个字符串,并返回一个整数。
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
当忽略参数 radix , JavaScript 默认数字的基数如下:
如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
再来看 parseInt(011, 2)
011 会被 parseInt 理解为八进制 从而转换为 9
而二进制只有 0 和 1 所以结果为 NaN
思考题 🤔
答案在 👇👇👇👇👇
more
如果是这样呢
更多涉及 parseInt 可参考 国外小哥哥的博客
进制间的转换
转十进制
通用方法
Last updated
Was this helpful?