Я получаю некоторые данные от пользователя и сохраняю их в теге div так же, как работает калькулятор, например, пользователь вводит 100-50+30, затем я сохраняю его в теге div, и когда пользователь нажимает кнопку «Перейти», я хочу чтобы показать ему результат, который равен 80. Я попробовал синтаксический анализ и число, поскольку строка содержит такие операторы, как +/*, они не работают.
var a = document.querySelector(".output").innerHTML;
Думаю eval здесь сработает
Эвал злой...
@EliasSoares в целом я бы согласился, но если код OP равен строительство выражениям, то это не опасно; единственная реальная альтернатива - написать собственный синтаксический анализатор выражений.
Если вы хотите избежать потенциального выполнения кода, вы можете использовать существующую библиотеку, например математика.



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


Используйте функцию eval()
var expression = '100-50+30';
console.info(eval(expression));
Функция eval() оценивает код JavaScript, представленный в виде строки.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
Вы можете просто использовать eval, но из соображений безопасности я бы рекомендовал удалить все из пользовательского ввода, кроме цифр и разрешенных операторов, перед оценкой выражения:
const input = '100-50+30 [some malicious code]'
const result = eval(input.replace(/[^0-9\+\-\*/]/g, ''));
console.info(result)Если вам нужна более надежная проверка, например. избегайте потенциальных ошибок, убедитесь, что формат использует /^[+-]?\d+([+/*-]\d+)*$/.test(input), и не выполняйте, если он возвращает false. Если вы хотите также обрабатывать десятичные числа, это будет немного сложнее (и будет зависеть от того, хотите ли вы поддерживать такие вещи, как .5 и 1., как допустимые числа)