字符串转数字

parseInt(num)
parseInt: 没有传入基数时,默认是传入的基数为 10 parseInt(num, 10)

  1. 注意:
  2. parseInt("08"); // returns 0 部分老浏览器.
  3. parseInt("44.jpg"); // returns 44

parseFloat

  1. parseInt(-0xff); // returns -255
  2. parseInt("-0xFF"); // returns -255
  3. parseFloat(-0xff); // returns -255
  4. parseFloat("-0xFF"); // returns 0

换位符
可以把字符串转换成整数,但他不是浮点数。如果是一个字符串转换,它将返回 0;

  1. ~~1.23; // returns 1
  2. ~~"1.23"; // returns 1
  3. ~~"23"; // returns 23
  4. ~~"Hello world"; // returns 0

原理:通过翻转>)每个位,也称为数字的 A1 补码。你可以使用它,但注意只能用来存储整数。所以通常情况不要用它,除非你能确定这个数是在 32 位整数之间的值(因为调用的 ToInt32 的规范)。
按位非:用它确保输入中没有字符,仅用于整数。

Number
不推荐使用,JsPerf 中最慢的之一
注意:023 实际上是一个八进制数,无论你怎么做,都是返回 19;对于没有单引号或双引号的十六进制数一样

  1. Number("023"); // returns 23
  2. Number(023); // returns 19

一元运算符

  1. "1.23" * 1; // returns 1.23
  2. "0xFF" - 0; // returns 255
  3. "0xFF.jpg" / 1 + // returns NaN
  4. "023"; // returns 23
  5. + 号运算符
  6. let string = "123"
  7. let number = + + string

https://harttle.land/2020/11/22/javascript-string-to-number.html