Function parse #

解析表达式。返回一个节点树,可以通过调用 node.evaluate() 进行计算,或者通过 node.compile() 转换为函数对象。

请注意,评估任意表达式可能存在安全风险,有关更多信息,请参阅 https://mathjs.cn/docs/expressions/security.html

Syntax #

math.parse(expr)
math.parse(expr, options)
math.parse([expr1, expr2, expr3, ...])
math.parse([expr1, expr2, expr3, ...], options)

Parameters #

Parameter Type Description
expr string | string[] | Matrix 要解析的表达式
options {nodes: Object<string, Node>} 可用选项:</br>- nodes 一组自定义节点

Returns #

Type Description
Node | Node[] node

Throws #

Type Description
Error  

Examples #

const node1 = math.parse('sqrt(3^2 + 4^2)')
node1.compile().evaluate() // 5

let scope = {a:3, b:4}
const node2 = math.parse('a * b')
node2.evaluate(scope) // 12
const code2 = node2.compile()
code2.evaluate(scope) // 12
scope.a = 5
code2.evaluate(scope) // 20

const nodes = math.parse(['a = 3', 'b = 4', 'a * b'])
nodes[2].compile().evaluate() // 12

另请参阅 #

evaluate, compile

Fork me on GitHub