JavaScript 类型转换
- 将字符串转换为数字
- 将数字转换为字符串
- 将日期转换为数字
- 将数字转换为日期
- 将布尔值转换为数字
- 将数字转换为布尔值
JavaScript 类型转换
JavaScript 变量可以转换为新变量和另一种数据类型:
- 通过使用 JavaScript 函数
- 由 JavaScript 本身自动执行
将字符串转换为数字
全局方法Number()将变量(或值)转换为数字。
数字字符串(如“3.14”)转换为数字(如 3.14)。
空字符串(如 “”)转换为 0。
非数字字符串(如“John”)转换为 NaN(Not a Number)。
1 | Number("3.14") |
1 | Number("99 88") |
Number 方法
在[“数法”]一章中,你 将找到更多可用于将字符串转换为数字:
| 方法 | 描述 |
|---|---|
| Number() | 返回一个从其参数转换而来的数字 |
| parseFloat() | 解析字符串并返回浮点数 |
| parseInt() | 解析一个字符串并返回一个整数 |
一元 + 运算符
一元 + 运算符可用于 将变量转换为数字:
1 | let y = "5"; // y is a string |
如果变量无法转换,它仍然会变成数字,但值为 NaN(不是数字):
1 | let y = "John"; // y is a string |
将数字转换为字符串
全局方法String()可以将数字转换为字符串。
它可以用于任何类型的数字、文字、变量或表达式:
1 | String(x) // returns a string from a number variable x |
Number方法 toString() 执行相同的操作。
1 | x.toString() |
更多方法
在“数字方法”一章中,您将找到更多可用于将数字转换为字符串的方法:
| 方法 | 概述 |
|---|---|
| toExponential() | 返回一个字符串,其中数字四舍五入并使用指数表示法书写。 |
| toFixed() | 返回一个字符串,其中数字四舍五入并以指定的小数位数书写。 |
| toPrecision() | 返回一个字符串,其中包含指定长度的数字 |
将日期转换为数字
全局方法Number()可用于将日期转换为数字。
1 | d = new Date(); |
日期方法getTime()的作用相同。
1 | d = new Date(); |
将日期转换为字符串
全局方法String()可以将日期转换为字符串。
1 | Strin<!-- <div class="codeframe"> --> |
Date 方法toString()的作用相同。
1 | Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)" |
在“日期方法”一章中,您将找到更多可用于将日期转换为字符串的方法:
| 方法 | 概述 |
|---|---|
| getDate() | 获取数字形式的日期 (1-31) |
| getDay() | 获取工作日的数字 (0-6) |
| getFullYear() | 获取四位数年份 (yyyy) |
| getHours() | 获取小时 (0-23) |
| getMilliseconds() | 获取毫秒(0-999) |
| getMinutes() | 获取分钟 (0-59) |
| getMonth() | 获取月份 (0-11) |
| getSeconds() | 获取秒数 (0-59) |
| getTime() | 获取时间(自 1970 年 1 月 1 日以来的毫秒数) |
将布尔值转换为数字
全局方法 Number() 还可以将布尔值转换为数字。
1 | Number(false) // returns 0 |
将布尔值转换为字符串
全局方法 String() 可以将布尔值转换为字符串。
1 | String(false) // returns "false" |
布尔方法toString()执行相同的操作。
1 | false.toString() // returns "false" |
自动类型转换
当 JavaScript 尝试对“错误”的数据类型进行操作时,它会尝试 将值转换为“right”类型。
结果并不总是你所期望的:
1 | 5 + null // returns 5 because null is converted to 0 |
自动字符串转换
当您尝试“输出”对象或变量时,JavaScript 会自动调用变量的toString()函数:
1 | document.getElementById("demo").innerHTML = myVar; |
数字和布尔值也被转换,但这不是很明显:
1 | // if myVar = 123 // toString converts to "123" |
JavaScript 类型转换表
下表显示了将不同 JavaScript 值转换为 Number、String 和 Boolean 的结果:
| 原值 | 转换为数字 | 转换为字符串 | 转换为布尔值 | 尝试一下 |
|---|
| 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” | false | |
引号中的值表示字符串值。
红色值表示(某些)程序员可能意想不到的值。
搜索
阅读量:
收藏数:
点赞数:


0评论