在 JavaScript 中数据被分成了不同的类型,如数值、字符串、布尔值、undefined,在实际编程的过程中,不同数据类型之间存在着转换的关系。
1.1 隐式转换
某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
<meta charset="UTF-8"> <title>JavaScript 基础 - 隐式转换</title> <script> let num = 13; // 数值 let num2 = '2'; // 字符串
// 结果为 132 // 原因是将数值 num 转换成了字符串,相当于 '13' // 然后 + 将两个字符串拼接到了一起 console.log(num + num2);
// 结果为 11 // 原因是将字符串 num2 转换成了数值,相当于 2 // 然后数值 13 减去 数值 2 console.log(num - num2);
let a = prompt('请输入一个数字'); let b = prompt('请再输入一个数字');
alert(a + b);
注:数据类型的隐式转换是 JavaScript 的特征,后续学习中还会遇到,目前先需要理解什么是隐式转换。
1.2 显示转换
编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。
number :通过 Number 显示转换成数值类型,当转换失败时结果为 NaN(Not a Number)即不是一个数字。
<meta charset="UTF-8"> <title>JavaScript 基础 - 隐式转换</title> <script> let t = '12'; let f = 8;
// 显式将字符串 12 转换成数值 12 t = Number(t);
// 检测转换后的类型 // console.log(typeof t); console.log(t + f); // 结果为 20
// 并不是所有的值都可以被转成数值类型 let str = 'hello'; // 将 hello 转成数值是不现实的,当无法转换成 // 数值时,得到的结果为 NaN (Not a Number) console.log(Number(str));
领取专属 10元无门槛券
私享最新 技术干货