Итак, я новичок в javascript, и я пытаюсь сделать эту вещь, в которой я ввожу 2 значения, и они будут либо увеличивать, либо умножать, либо делить и т. д. От того, что я ввожу в код. Но почему-то, когда я пытаюсь умножить 5 * 2, будет отображаться 10, но когда я попробую 5 + 2, будет показано 52, как мне это исправить? Я пробовал parseInt (), но это не сработало
[Вывод] [1]
Код:
function myfunction() {
var x = document.getElementById("fname").value;
var y = document.getElementById("lname").value;
var z = x + y;
document.getElementById("output").innerHTML = z;<form>
<input type = "Number" id = "fname" value = "" ><br><br>
<input type = "number" id = "lname" value = "" ><br><br>
</form>
<button type = "button" onclick = "myfunction()">submit</button>
<p id = "output"></p>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Сначала преобразуйте значения в Number. .value из элемента всегда будет строкой.
function myfunction() {
var x = Number(document.getElementById("fname").value);
var y = Number(document.getElementById("lname").value);
var z = x + y;
document.getElementById("output").innerHTML = z;
}<form>
<input type = "Number" id = "fname" value = "" ><br><br>
<input type = "number" id = "lname" value = "" ><br><br>
</form>
<button type = "button" onclick = "myfunction()">submit</button>
<p id = "output"></p>Стоит ли отвечать на этот вопрос? ...
Math.round тоже работают :)
Итак, я просто добавляю число перед ним, и он всегда будет возвращать число вместо строки?
@Zenoo, если ты здесь, чтобы просто означать, что можешь уйти, не все профессионалы
Но в любом случае это сработало! большое тебе спасибо
@ Филипп Я не имею в виду. Я связал вам ответ на ваш вопрос. Этот вопрос задавали уже много раз.
Это связано с тем, что и x, и y являются строкой. Используйте parseInt для преобразования строки в число перед выполнением математической операции.
function myfunction() {
var x = document.getElementById("fname").value;
var y = document.getElementById("lname").value;
console.info(typeof x) // string
var z = parseInt(x, 10) + parseInt(y, 10);
document.getElementById("output").innerHTML = z;
}<form>
<input type = "Number" id = "fname" value = ""><br><br>
<input type = "number" id = "lname" value = ""><br><br>
</form>
<button type = "button" onclick = "myfunction()">submit</button>
<p id = "output"></p>
Я нашел эту статью действительно полезной medium.freecodecamp.org/js-type-coercion-explained-27ba3d9a2 839