PHVNTOW
@PHVNTOW

Как решить проблему с eval?

Делаю калькулятор на Vue (api) и столкнулся с проблемой.

Вроде всё работает нормально, но вот когда в водишь в input не логическое уравнение например: " + -+ * + " eval выдаёт ошибку, что логично, но вот как мне её обойти или решить?

Пытался разобраться с Error'ами, но чёт не очень понял.

HTML

<div id="app">
        <h1>Vue Calculator</h1>
        <main class="main">
            <input v-model="input" />
            <div @click="clear" class="num">C</div>
            <div @click="result" class="num">=</div>
            <div @click="num('/')" class="num">/</div>
            <div @click="num('*')" class="num">*</div>
            <div @click="num('+')" class="num">+</div>
            <div @click="num('-')" class="num">-</div>
            <div @click="num(9)" class="num">9</div>
            <div @click="num(8)" class="num">8</div>
            <div @click="num(7)" class="num">7</div>
            <div @click="num(6)" class="num">6</div>
            <div @click="num(5)" class="num">5</div>
            <div @click="num(4)" class="num">4</div>
            <div @click="num(3)" class="num">3</div>
            <div @click="num(2)" class="num">2</div>
            <div @click="num(1)" class="num">1</div>
        </main>
    </div>


JS

const app = Vue.createApp({
    data() {
        return {
            input: "",
        }
    },
    methods: {
        num(n) {
            this.input += "" + n 
        },
        clear() {
            this.input = ""
        },
        result() {
            if(this.input === "") {
                return
            } else {
                this.input = eval(this.input)
            }
        },
    },
})

app.mount("#app")
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 1
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы