JS——转换
转换为字符串:
toString
- 数组可转
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var strfruits = fruits.toString();
转换为数组:
转换为对象:
转换为数字:
一元+运算符
var y = "5"; // y 是字符串
var x = + y; // x 是数字
如果无法转换变量,则仍会成为数字,但是值为NaN(Not a number)
var y = "Bill"; // y 是字符串
var x = + y; // x 是数字 (NaN)
Number
- 将字符串转换为数字。
Number("3.14") // 返回 3.14
Number(" ") // 返回 0
Number("") // 返回 0
Number("99 88") // 返回 NaN
parseFloat
- 解析一段字符串并返回数值,允许空格,只返回首个数字。
parseFloat("10"); // 返回 10
parseFloat("10.33"); // 返回 10.33
parseFloat("10 20 30"); // 返回 10
parseFloat("10 years"); // 返回 10
parseFloat("years 10"); // 返回 NaN
parseInt
- 解析字符串返回数值,允许空格,只返回首个数字
- 如果无法转换则返回NaN
parseInt("10"); // 返回 10
parseInt("10.33"); // 返回 10
parseInt("10 20 30"); // 返回 10
parseInt("10 years"); // 返回 10
parseInt("years 10"); // 返回 NaN
把布尔转换为数子
Number(false) // 返回 0
Number(true) // 返回 1
日期转换为数字
d = new Date();
Number(d) "demo3">// 返回 1670654378511
d = new Date();
d.getTime() "demo4">// 返回 1670654378511
自动类型转换
它会试图将该值转换为“正确”的类型。结果并不总是你所期望的。
5 + null // 返回 5 因为 null 被转换为 0
"5" + null // 返回 "5null" 因为 null 被转换为 "null"
"5" + 2 // 返回 52 因为 2 被转换为 "2"
"5" - 2 // 返回 3 因为 "5" 被转换为 5
"5" * "2" // 返回 10 因为 "5" 和 "2" 被转换为 5 和 2
| 原始值 | 转换为数字 | 转换为字符串 | 转换为逻辑 |
|---|---|---|---|
| false | 0 | "false" | false |
| true | 1 | "true" | true |
| 0 | 0 | "0" | false |
| 1 | 1 | "1" | true |
| "0" | 0 | "0" | true |
| "000" | 0 | "000" | true |
| "1" | 1 | "1" | true |
| NaN | NaN | "NaN" | false |
| Infinity | Infinity | "Infinity" | true |
| -Infinity | -Infinity | "-Infinity" | true |
| "" | 0 |
"" | false |
| "20" | 20 | "20" | true |
| "twenty" | NaN | "twenty" | true |
| [ ] | 0 |
"" | true |
| [20] | 20 |
"20" | true |
| [10,20] | NaN | "10,20" | true |
| ["twenty"] | NaN | "twenty" | true |
| ["ten","twenty"] | NaN | "ten,twenty" | true |
| function(){} | NaN | "function(){}" | true |
| { } | NaN | "[object Object]" | true |
| null | 0 |
"null" | false |
| undefined | NaN | "undefined" |

浙公网安备 33010602011771号