字面量 literal | value | value | 123 --> 123 |
标识符 Identifier | value | ["$", "value"] | a -->["$", "a"] |
数组表达式 ArrayExpression | [value1, value2, value3] | ["~", "value1", "value2", "value3"] | [a, 1, 2] -->["~", ["$", "a"], 1, 2] |
一元表达式 UnaryExpression | operator value | ["operator", value] | !a -->["!", ["$", "a"]] |
二元表达式 BinaryExpression | value1 operator value1 | ["operator", value1, value2] | a+1 --> ["+", ["$", "a"], 1] |
属性表达式 MemberExpression | 1. value1[value2] 2. value1.value2 | [".", value1, value2] | a[1] --> [".", ["$", "a"], 1] |
逻辑表达式 LogicalExpression | value1 operator value1 | ["operator", value1, value2] | a || 1 --> ["||", ["$", "a"], 1] |
条件表达式 ConditionalExpression | condition? value1 : value2 | [":?", "$condition" value1, value2] | a?x:1 --> [":?", ["$", "a"], ["$", "x"], 1] |
调用表达式 CallExpression | fun(arg1, args2, ...) | ["()", ["$", "fun"], arg1, arg2, ...] | fun(a, 123) --> ["()", ["$", "fun"], ["$", "a"], 123] |
无前缀调用表达式 (可自定义,默认["$t", "$tc"]) | noPrefixFun(arg1) | ["()", "noPrefixFun", arg1, arg2, ...] | $t("abc") --> ["()", "$t", "abc"] |
模板字符串 | str-${js} | 相当于加法二元表达式 "str" + js | |
对象表达式 ObjectExpression | {key1: value1, key2: value2} | ["{}", {key1: value1, key2: value2} | {x:1, y:"2", z:a+b} -->['{}',{x: 1, y: '2', z: ['+', ['$', 'a'], ['$', 'b']]}] |