В строке ("G = denexp"
), которую вы передаете evaluate
, Math.js ожидает найти только такие вещи, как числа, единицы и математические символы: 0.5
, sin
, sqrt
, deg
и т. д. Вы пытаетесь передать переменную denexp
, просто включив ее в строку, но "denexp"
не является символом, который понимает Math.js.Вместо этого вы должны добавить значение из denexp
к строке:
sim.evaluate("G = " + denexp)
Или, если ваш браузер поддерживает целевые литералы шаблона:
sim.evaluate(`G = ${denexp}`)
В качестве альтернативы, вы можете предоставить область видимости для Math.js, которая позволит вам использовать любые переменные, определенные в области видимости в выражениях:
var scope = {
denexp: denexp
}
sim.evaluate("G = denexp", scope)
Это дает преимущество в том, что любые переменные присваиваются (например, G =
здесь) также будет сохранено в области видимости (хотя простое присвоение одной переменной другой, как это сделано в вашем примере, не очень полезно и, вероятно, не соответствует цели).