Qo'shishni tuzating
Mana foydalanuvchidan ikkita raqamni so’raydigan va ularning yig’indisini ko’rsatadigan kod.
Bu noto’g’ri ishlaydi. Quyidagi misoldagi chiqish 12 (standart taklif qiymatlari uchun).
Nega? Tuzating. Natija “3” bo’lishi kerak.
let a = prompt("Birinchi raqam?", 1);
let b = prompt("Ikkinchi raqam?", 2);
alert(a + b); // 12
Prompt va string o’zgartirish
Buning sababi prompt foydalanuvchi kiritgan ma’lumotni string sifatida qaytaradi.
Demak, o’zgaruvchilar mos ravishda "1" va "2" qiymatlariga ega.
let a = "1"; // prompt("First number?", 1);
let b = "2"; // prompt("Second number?", 2);
alert(a + b); // 12
Biz qilishimiz kerak bo’lgan narsa + dan oldin stringlarni raqamlarga o’zgartirishdir. Masalan, Number() dan foydalanish yoki ularning oldiga + qo’yish.
Yechimlar
1. prompt dan oldin:
let a = +prompt("First number?", 1);
let b = +prompt("Second number?", 2);
alert(a + b); // 3
2. alert ichida:
let a = prompt("First number?", 1);
let b = prompt("Second number?", 2);
alert(+a + +b); // 3
Oxirgi kodda ham unary ham binary + ishlatilmoqda. Kulgili ko’rinadi, shunday emasmi?