@nvanyuk09

Как заставить такой калькулятор работать без использования eval()?

<table> 
        <tr> 
        <td colspan="4" class="main"><input type="text" id="result"/></td> 
        <td><input type="button" value="C" class="cancel" onclick="clr()"/> </td>
        </tr> 
        <tr> 
        <td><input type="button" value="7" onclick="Display('7')"/> </td> 
        <td><input type="button" value="8" onclick="Display('8')"/> </td> 
        <td><input type="button" value="9" onclick="Display('9')"/> </td> 
        <td><input type="button" value="&divide;"onclick="Display('/')"/> </td>                        
        </tr>       
        <tr> 
        <td><input type="button" value="4" onclick="Display('4')"/> </td> 
        <td><input type="button" value="5" onclick="Display('5')"/> </td> 
        <td><input type="button" value="6" onclick="Display('6')"/> </td> 
        <td><input type="button" value="*" onclick="Display('*')"/> </td>                     
        </tr> 
        <tr> 
        <td><input type="button" value="1" onclick="Display('1')"/> </td> 
        <td><input type="button" value="2" onclick="Display('2')"/> </td> 
        <td><input type="button" value="3"onclick="Display('3')"/> </td> 
        <td><input type="button" value="-" onclick="Display('-')"/> </td>     
        </tr>       
        <tr> 
        <td><input type="button" value="0"onclick="Display('0')"/> </td> 
        <td><input type="button" value="."onclick="Display('.')"/> </td>                     
        <td><input type="button" value="=" onclick="solve()"/> </td>  
        <td><input type="button" value="+"onclick="Display('+')"/> </td>   
        </tr>  
    </table> 
 <code lang="javascript">
 function Display(value) { 
            document.getElementById("result").value += value;
        }     
        function solve() { 
            var val1 = document.getElementById("result").value;
            var val2 = eval(val1);
            document.getElementById("result").value = val2; 
        }     
        function clr() { 
            document.getElementById("result").value = "" 
        } 
 
        function cancel() { 
            var value = document.getElementById("result").value;
            
            document.getElementById("result").value = value.substr(0, value.length - 1);
        } 
</code>
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov Куратор тега JavaScript
Проект "Жизнь после смерти" - lifeafterdeath.ru
А что не так с eval? В данном случае это оптимальный вариант.
Можно, конечно, написать свой парсер, но зачем?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
22 окт. 2020, в 06:46
3000 руб./за проект
21 окт. 2020, в 22:40
300 руб./за проект
21 окт. 2020, в 22:34
25000 руб./за проект