JavaScript - 类型转换
- String
- undefined ==> "undefined"
- " " ==> " "
- 数组 ==> 所有元素都平铺
- 对象 ==> "[objectObject]"
- 函数 ==> 函数字符串
- Number
- Boolean
- 只有六种为false:
null、undefined、0、false、NaN、''
- 剩下都为true
| 当前值 | String() | Number() | Boolean() |
|---|
undefined | "undefined" | NaN | false |
| null | "null" | 0 | false |
| 0 | "0" | 0 | false |
| -0 | "0" | 0 | false |
| true | "true" | 1 | true |
| false | "false" | 0 | false |
| NaN | "NaN" | NaN | false |
| ""(空字符串) | "" | 0 | false |
" " 非空 | " " | 0 | true |
| "1.2"(非空,数值) | "1.2" | 1.2 | true |
| "one"(非空,非数值) | "one" | NaN | true |
| 1(有限,非零) | "1" | 1 | true |
{}(任何对象) | "[objectObject]" | NaN | true |
[](空数组) | "" | 0 | true |
| [9](一个数值元素) | "9" | 9 | true |
| [9,29](一个数值元素) | "9,29" | NaN | true |
[["a",["b",["c"]]]] | "a,b,c" 去掉所有[]壳 | NaN | true |
| Function(){}(任何函数) | "function(){}" 字符串 | NaN | true |
| Infinity | "Infinity" | Infinity | true |
| -Infinity | "-Infinity" | -Infinity | true |