方式一

使用 Number()函数

字符串 转 数字

  • 如果是 纯数字 的字符串,则直接将其转换为 数字
  • 如果字符串有 非数字 的内容,则转换为 NaN
  • 如果字符串是一个空串或是一个全是空格的字符串,则转换为 0

    1. var a = "123";
    2. a = Number(a);
    3. console.log(typeof a); // 123

    布尔 转 数字

  • true 1

  • false 0 ```javascript var a = true; a = Number(a); console.log(typeof a); // 1

a = false a = Number(a); console.log(typeof a); // 0

  1. <a name="JWkET"></a>
  2. ### null 转 数字
  3. - `0`
  4. ```javascript
  5. var a = null
  6. a = Number(a);
  7. console.log(typeof a); // 0

undefined 转 数字

  • NaN
    var a = undefined;
    a = Number(a);
    console.log(typeof a);  // NaN
    

方式二

:::danger

  • 这种方式专门用来对付字符串
  • 如果对非 String 使用 parseInt()函数 或 parseFloat()函数,它会先将其转换为 String 然后在操作 :::

    var a = null;  // 非字符串转换为 number
    a = parseInt(a);
    console.log(typeof a);  // NaN
    

    parseInt()函数

  • 把一个字符串转换为一个整数

  • parseInt() 可以将一个字符串中的有效的整数内容取出来 :::danger

  • 注意:parseInt()函数 只会取整数,小数点无效。

  • 如果遇到非字符串用 parseInt()函数 转换,则会先将其转换为 String 然后在操作 ::: ```javascript var a = “123abc” a = parseInt(a); console.log(typeof a); // 123

a = “b123”; a = parseInt(a); console.log(typeof a); // NaN 为什么返回 NaN 呢!因为 parseInt()函数,是从左向右解析的,当 // 遇到非整数是,则不会解析,直接返回结果。NaN 表示,”不是数字”

var b = null; b = parseInt(b); // 非字符串转换为 整数,会先将其转换为 字符串,在操作 console.log(typeof b); // 转换后,类型检查结果为:NaN,”不是数字”

> ~~像 a = 123.456 则只会取 123 因为parset()函数只会取处有效的整数,~~

<a name="RgYuW"></a>
### parseFloat()函数

- 把一个字符串转换为一个浮点数
- parseFloat() 可以将一个字符串中有效的小数内容取出来
```javascript
var a = "123.456"
a = parseFloat(a);
console.log(typeof a);  // 123.456

注意:123.456.789,用parseFloat()函数转换,只会取出,123.456 因为后面就不是小数了,知道了吗?