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评论