修正加法
重要程度: 5
这里有一段代码,要求用户输入两个数字并显示它们的总和。
它的运行结果不正确。下面例子中的输出是 12(对于默认的 prompt 的值)。
为什么会这样?修正它。结果应该是 3。
let a = prompt("First number?", 1);
let b = prompt("Second number?", 2);
alert(a + b); // 12
原因是 prompt 以字符串的形式返回用户的输入。
所以变量的值分别为 "1" 和 "2"。
let a = "1"; // prompt("First number?", 1);
let b = "2"; // prompt("Second number?", 2);
alert(a + b); // 12
我们应该做的是,在 + 之前将字符串转换为数字。例如,使用 Number() 或在 prompt 前加 +。
例如,就在 prompt 之前加 +:
let a = +prompt("First number?", 1);
let b = +prompt("Second number?", 2);
alert(a + b); // 3
或在 alert 中:
let a = prompt("First number?", 1);
let b = prompt("Second number?", 2);
alert(+a + +b); // 3
在最新的代码中,同时使用一元和二元的 +。看起来很有趣,不是吗?