方式一
字符串 转 数字
- 如果是 纯数字 的字符串,则直接将其转换为 数字
- 如果字符串有 非数字 的内容,则转换为 NaN
如果字符串是一个空串或是一个全是空格的字符串,则转换为 0
var a = "123";
a = Number(a);
console.log(typeof a); // 123
布尔 转 数字
true
1false
0 ```javascript var a = true; a = Number(a); console.log(typeof a); // 1
a = false a = Number(a); console.log(typeof a); // 0
<a name="JWkET"></a>
### null 转 数字
- `0`
```javascript
var a = null
a = Number(a);
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 因为后面就不是小数了,知道了吗?