转换为数字型
将数据转换为数字型,有4种常见的方式,示例代码如下。
// 方式1:使用parseInt()将字符串转为整数
console.log(parseInt('78')); // 输出结果:78
// 方式2:使用parseFloat()将字符串转为浮点数
console.log(parseFloat('3.94')); // 输出结果:3.94
// 方式3:使用Number()将字符串转为数字型
console.log(Number('3.94')); // 输出结果:3.94
// 方式4:利用算术运算符(-、*、/)隐式转换
console.log('12' - 1); // 输出结果:11
在将不同类型的数据转换为数字型时,转换结果不同,具体如表1所示。
表1 转数值型
待转数据 | Number()**和隐式转换** | parseInt() | parseFloat() |
---|---|---|---|
纯数字字符串 | 转成对应的数字 | 转成对应的数字 | 转成对应的数字 |
空字符串 | 0 | NaN | NaN |
数字开头的字符串 | NaN | 转成开头的数字 | 转成开头的数字 |
非数字开头字符串 | NaN | NaN | NaN |
Null | 0 | NaN | NaN |
undefined | NaN | NaN | NaN |
False | 0 | NaN | NaN |
True | 1 | NaN | NaN |
在转换纯数字时,会忽略前面的0,如字符串“0123”会被转换为123。如果数字的开头有“+”,会被当成正数,“-”会被当成负数。下面我们通过代码进行演示。
console.log(parseInt('03.14')); // 输出结果:3
console.log(parseInt('03.94')); // 输出结果:3
console.log(parseInt('120px')); // 输出结果:120
console.log(parseInt('-120px')); // 输出结果:-120
console.log(parseInt('a120')); // 输出结果:NaN
使用parseInt()还可以利用第2个参数设置转换的进制,示例代码如下。
console.log(parseInt('F', 16)); // 输出结果:15
上述代码表示将字符“F”转换为十六进制数,结果为15。
接下来我们通过两个案例来练习数字型转换的应用。
1. 【计算年龄】案例
本案例要求在页面中弹出一个输入框,提示用户输入出生年份,利用出生年份计算用户的年龄。具体代码如下。
1 var year = prompt('请输入您的年龄');
2 var age = 2020 - parseInt(year); // 由于year是字符串,需要进行转换
3 alert('您今年已经' + age + '岁了');
2. 【简单加法器】案例
本案例要求在页面中弹出两个输入框,分别输入两个数字,然后返回两个数字相加的结果。具体代码如下。
1 var num1 = prompt('请输入第一个数:');
2 var num2 = prompt('请输入第二个数:');
3 var result = parseFloat(num1) + parseFloat(num2);
4 alert('计算结果是:' + result);