标签(空格分隔): js-week1
---
## Number()
```javascript
Number();//0
Number('');//0
Number(' ');//0
Number(.5);//0.5
Number('.5');//0.5
Number('12q');//NaN
Number(false);//0
Number(true);//1
Number([]);//0
Number({});//NaN
Number(null);//0
Number(undefined);//NaN
```
> Number在转换引用数据类型的时候,会先把引用数据类型转换为字符串,然后在进行Number转化
## ParseInt()
>从左往右,依次查看,碰到非数字或点(.)就截止,返回之前的字符
```javascript
ParseInt("1.3q");//1
ParseInt("12q.3");//12
ParseInt("");//NaN
ParseInt(" ");//NaN
ParseInt("q12");//NaN
ParseInt(".5");//NaN
ParseInt(.5);//0
```
## ParseFloat()
>从左往右依次查看,碰到非数字就截止,返回在这之前的字符
```
ParseFloat("");//NaN
ParseFloat(.5);//0.5
ParseFloat(".5");//0.5
ParseFloat(".5q");//0.5
```
---
##比较运算符 ==
>isNaN() -> 判断是否为NaN,若是则返回true,否则返回false
先把内容用Number转化一下,然后再去判断
四则运算失败的时候也会出现NaN (+ - * / %)
> 所有和NaN做的运算结果全是NaN
> - / * % 把非数字转换成数字再进行运算
1/'q'->NaN
1/'1'->1
1*'1.2'->1.2
1*'1.2a'->NaN
> 加号运算符 +
1、两边都是数字则进行正常的加法运算
2、只要有一边是字符串那么就是字符串拼接
```javascript
isNaN(1/'q');//true
isNaN('');//false
isNaN([]);//false
isNaN(undefined);//true
isNaN('a');//true
NaN == NaN;//false
Number(undefined) == NaN;//false
```
---
##String() 字符串 数据类型
>单引号和双引号包起来的都是字符串
##Boolean() 布尔 数据类型
>Boolean值为false的
0 null undefined '' NaN
```
Boolean (!' ');//false
Boolean(!'');//true
Boolean(!Number('));//true
!Boolean(!Number(' '));//false
Boolean(!Number('12a'));//true
Boolean(!parseInt(''));//true
!Boolean(!parseFloat('12.2w'));//true
```
##typeof 判断数据类型
> 返回值的类型为字符串类型
"number"
"string"
"bollean"
undefined -> "undefined"
null -> "object"