JavaScript 基础
Document
运算符
深入数据和类型
函数进阶
原型、继承
类
浏览器存储
Web API
事件
错误处理
异步编程
网络请求
模块
练习
实例
工具与规范
软件架构模式
设计模式
很多时候需要进行类型的转换才能正确地处理数据。比如用户输入或从文件中读取的数值, JavaScript 会将其视为字符串,如果我们要将其作为数字处理则必须事先经过类型的转换。
数字转换
比如用户输入的年龄数据就是一个字符串类型,而它更应该是数字类型。
$$edit$$
$$jsdemo$$
let age = prompt("请输入你年龄")
alert(typeof age) // string,字符串类型
这会可以用 Number(value)
显示地进行类型转换。
$$jsdemo$$
$$edit$$
let age = prompt("请输入你年龄")
alert(typeof age) // string,字符串类型
age = Number(age) // 转换为 number 类型
alert(typeof age) // number,数字类型
常见的数字类型转换如下:
Number(" 123 ") // 123,字符串会去掉首尾空格
Number("abc") // NaN,不是数字则为 NaN
Number(undefined) // NaN
Number(null) // 0
Number(true) // 1
Number(false) // 0
布尔转换
布尔类型的转换规则如下:
- false:0、空字符串、null、undefined、NaN。
- true:其余情况。
Boolean(0) // false
Boolean("") // false
Boolean(null) // false
Boolean(undefined) // false
Boolean(NaN) // false
Boolean(-1) // true
Boolean("abc") // true
字符串转换
字符串的转换的结果总是”它们看起来的样子”。
String(123) // "123"
String(true) // "true"
String(false) // "false"
String(undefined) // "undefined"
String(null) // "null"
String(NaN) // "NaN"
一些类型转成字符串再转回来的值可能会不一样。
Boolean(String(false)) // true
显式与隐式转换
像上面的例子中使用类型转换的方式都被称为显式转换。除此之外的都被称为隐式转换。
String(123) // 显式转换
alert(123) // alert 的参数会被隐式转换为字符串
8 > "5" // true, 比较运算符一边操作数为数字时,另一边也会隐式转换为数字
// if 条件的值会被隐式转换为 boolean 值
if (5) {
alert("总是执行")
}