جمع زدن را درست کنید
اهمیت: 5
اینجا یک کد داریم که از کاربر دو عدد درخواست میکند و مجموع آنها را نمایش میدهد.
این کد اشتباه کار میکند. خروجی مثال پایین 12
است (برای مقدارهای پیش فرض prompt).
چرا؟ آن را درست کنید. نتیجه باید 3
باشد.
let a = prompt("عدد اول؟", 1);
let b = prompt("عدد دوم؟", 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
:
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
از هر دو شکل unary و binary +
در آخرین کد استفاده شد. بامزه به نظر میرسد نه؟