We want to make this open-source project available for people all around the world.

Help to translate the content of this tutorial to your language!

BuyEPUB/PDF
Share
back to the lesson

Fix the addition

importance: 5

Here’s a code that asks the user for two numbers and shows their sum.

It works incorrectly. The output in the example below is 12 (for default prompt values).

Why? Fix it. The result should be 3.

let a = prompt("First number?", 1);
let b = prompt("Second number?", 2);
alert(a + b); // 12

The reason is that prompt returns user input as a string.

So variables have values "1" and "2" respectively.

let a = "1"; // prompt("First number?", 1);
let b = "2"; // prompt("Second number?", 2);
alert(a + b); // 12

What we should do is to convert strings to numbers before +. For example, using Number() or prepending them with +.

For example, right before prompt:

let a = +prompt("First number?", 1);
let b = +prompt("Second number?", 2);
alert(a + b); // 3

Or in the alert:

let a = prompt("First number?", 1);
let b = prompt("Second number?", 2);
alert(+a + +b); // 3

Using both unary and binary + in the latest code. Looks funny, doesn’t it?

AltStyle によって変換されたページ (->オリジナル) /