Почему отображается error при делении на любое число кроме нуля? Javascript

let Btns = document.querySelector(".buttons");
let Ac = document.querySelector(".ac");
let Play = document.querySelector(".num");


let numeral = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "."];
let operation = ["+", "-", "*", "/"];


let OneNum = "";
let TwoNum = "";
let OperationBtn = "";
let finish = false;


function clearAll() {
    OneNum = "";
    TwoNum = "";
    OperationBtn = "";
    finish = false;
    Play.textContent = "0";
}

Ac.addEventListener("click", clearAll);

Btns.addEventListener("click", function (e) {
    let key = event.target.textContent;

    if (numeral.includes(key)) {
        if (TwoNum == "" && OperationBtn == "") {
            OneNum += key;
            Play.textContent = OneNum;
        }   else if (OneNum !== "" && TwoNum !== "" && finish) {
            TwoNum = key;
            Play.textContent = TwoNum;
            finish = false;
        }   else {
            TwoNum += key;
            Play.textContent = TwoNum;
        }
    }   

    if (operation.includes(key)) {
        if (OneNum !== "") {
        OperationBtn = key;
        Play.textContent = OperationBtn;
        }   
    }

    if (key == "=") {
        if (OperationBtn == "+") {
            OneNum = +OneNum + +TwoNum;
        }

        if (OperationBtn == "-") {
            OneNum = OneNum - TwoNum;
        }

        if (OperationBtn == "*") {
            OneNum = OneNum * TwoNum;
        }

        if (OperationBtn == "/") {
            OneNum = OneNum / TwoNum;
        }   

        if (OneNum / 0) {
            OneNum = "Error";
        }

        
    

        Play.textContent = OneNum;
        finish = true;
    }


})
.content {
    display: grid;
    width: 250px;
    height: 350px;
    justify-content: center;
    background-color: black;
    border-radius: 10px;
}

.buttons {
    display: grid;
    grid-template-columns: 170px 40px;
}

.numeral {
    display: grid;
    grid-template-columns: 40px 40px 40px;
    grid-template-rows: 40px 40px 40px 40px 40px;
    grid-gap: 10px;
}

.operation {
    display: grid;
    grid-template-columns: 40px;
    grid-template-rows: 40px 40px 40px 40px;
    grid-row-gap: 10px;
}

.btn {
    background-color: #333;
    border-radius: 100%;
    color: white;
}

.display {
    color: white;
    font-size: 35px;
}

.num {
    margin: 10px 10px 10px 10px;
    text-align: end;
}
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>


    <div class="content">
            <div class="display">
                <p class="num">0</p>
            </div>
            <div class="buttons">
                <div class="numeral">
                <button class="btn one">1</button>
                <button class="btn two">2</button>
                <button class="btn three">3</button>
                <button class="btn four">4</button>
                <button class="btn five">5</button>
                <button class="btn six">6</button>
                <button class="btn seven">7</button>
                <button class="btn eight">8</button>
                <button class="btn nine">9</button>
                <button class="btn zero">0</button>
                <button class="btn eq">=</button>
                <button class="btn ac">ac</button>
                <button class="btn dot">.</button>
                </div>
                <div class="operation">
                <button class="btn multiply">*</button>
                <button class="btn devide">/</button>
                <button class="btn plus">+</button>
                <button class="btn minus">-</button>
                </div>
            </div>
        </div>

    <script src="main.js" type="text/javascript"></script>
</body>
</html>

Ведь Error должен отображаться только при делении на 0


Ответы (1 шт):

Автор решения: Алексей Шиманский

Условие if (OneNum / 0) { выполняется всегда, при любых выполненных других if'ах. И как следствие всегда будет отрабатывать и выдавать error.

Причём почему error должен быть - не ясно..... ..я понимаю, когда заданное число является нулём и на него пытаются делить, но когда тут проверяется что заданное число делится на ноль - странно. Эта проверка вообще сама по себе не имеет смысла

→ Ссылка