模块 2 · 第 4 课(共 4)课程中的8/32~8 min
模块课程(4/4)
类型转换
您始终需要转换值的类型: 的 value
HTML 输入作为字符串到达,即使它代表数字、API
返回字符串格式,您需要将对象记录为文本。 JS 优惠
三种转换系列:显式、专用解析器和(将
避免)隐含的。
显式转换
这些是最清晰的,应该是您的默认值:
JS
Number('42'); // 42
Number('3.14'); // 3.14
Number(''); // 0 ← careful
Number(' 10 '); // 10 (spaces are ignored)
Number('ciao'); // NaN ← does not represent a number
String(42); // '42'
String(true); // 'true'
String(null); // 'null'
String(undefined); // 'undefined'
Boolean(1); // true
Boolean(0); // false
Boolean(''); // false
Boolean('abc'); // trueparseInt 和 parseFloat:宽容的解析器
与 Number(...) 不同,parseInt 和 parseFloat 忽略非数字
字符串的 tail :它们停在第一个无效字符处。
JS
Number('42px'); // NaN
parseInt('42px'); // 42
parseFloat('3.14em'); // 3.14
parseInt(' 12 anni'); // 12
parseInt('ciao12'); // NaN ← must start with digitstoFixed 将数字格式化为字符串
在上一课中简要介绍过:四舍五入到 N 位小数并返回 字符串。
JS
(3.14159).toFixed(2); // '3.14'
(1).toFixed(2); // '1.00'要将其转换回 number 使用 Number(...) 前缀或一元
+:
JS
Number((3.14159).toFixed(2)); // 3.14
+(3.14159).toFixed(2); // 3.14NaN:咬合的值
NaN(“不是数字”)是由失败的数字运算生成的:
JS
Number('ciao'); // NaN
0 / 0; // NaN
parseInt('xxx'); // NaN特征:
- 它的类型为
'number'(是的,“非数字”是数字) - 它不等于它本身:
NaN === NaN是false - 要测试它,请使用函数
Number.isNaN(x)
JS
const x = Number('ciao');
x === NaN; // false (!)
Number.isNaN(x); // true尝试一下
锻炼#js.m2.l4.e1
尝试:0加载中...
给定字符串“128.95 EUR”,提取(十进制)数字并将其四舍五入到最接近的整数,将其作为数字返回。预计:129。
正在加载编辑器...
显示提示
parseFloat 忽略 'EUR'; .toFixed(0) 四舍五入为字符串形式的整数; Number(...) 转换回数字。
3 次尝试后可用的解决方案
复习练习
锻炼#js.m2.l4.e2
尝试:0加载中...
给定 `n = Number('non un numero')`,编写一个表达式,如果结果为 NaN,则该表达式的计算结果为 true。
正在加载编辑器...
显示提示
使用 Number.isNaN,而不是 n === NaN:NaN 不等于其自身。
3 次尝试后可用的解决方案