常见的表达式
1)BinaryExpression具有二进制运算符
2)CallExpression函数调用
3)条件表达式ConditionalExpression
(1) BinaryExpression具有二进制运算符的表达式。举例如下:
//BinaryExpression代表二元表达式
//样例
const a = !![]+!![]+!![];
(1) (2) (3)
//样例里边有两个二元表达式
//第一个
左边: !![] + 右边: !![]+!![]
(1) (2) (3)
//第二个
左边: !![] + 右边: !![]
(2) (3)
常见的此类型node结构如下例:
(2) CallExpression函数调用,常见的格式
const b = Math.floor(12.34 * 2.12)
其中Math.floor(12.34 * 2.12)是CallExpression
CallExpression的结构如下
{
"type": "CallExpression",
//函数Math.floor
"callee": {
//函数的赋值表达式
"type": "MemberExpression",
//被调用的对象Math
"object",
//对象属性
"property"
},
//函数的参数12.34 * 2.12
"arguments": []
}
(3)条件表达式ConditionalExpression
const b = 20 < 18 ? '未成年' : '成年'
其中b = 20 < 18 ? '未成年' : '成年'是ConditionalExpression条件表达式
onditionalExpression的结构如下
{
"type": "ConditionalExpression",
//20 < 18判断条件
"test": BinaryExpression,
//左边的结果
"consequent": StringLiteral ,
//右边的结果
"alternate":StringLiteral
}