# 关键字、运算符、数据类型

## 关键字

| 关键字 | 含义 |
|--------|------|
| var | 定义变量 |
| if | 条件语句的引导词 |
| else | 用在条件语句中，表明当条件不成立时的分支 |
| for | for循环语句 |
| in | 与for配合使用 |
| while | while循环语句 |
| continue | 执行下一次循环 |
| break | 跳出循环 |
| return | 终止当前过程的执行并正常退出到上一个执行过程中 |
| exit | 终止当前脚本，并退出返回，如`exit 200,'执行成功',[1,2,3];` |
| assert | 断言 |
| instanceof | 判断一个对象是否为一个类的实例 |
| try | 用于捕获可能发生异常的代码块 |
| catch | 与try关键字配合使用，当发生异常时执行 |
| finally | 与try关键字配合使用，finally块无论发生异常都会执行 |
| import | 导入Java类或导入已定义好的模块 |
| as | 与 import 关键字配合使用，用作将导入的 Java类或模块 命名为一个本地变量名 |
| new | 创建对象 |
| true | 基础类型之一，表示 Boolean 的：真值 |
| false | 基础类型之一，表示 Boolean 的：假值 |
| null | 基础类型之一，表示 NULL 值 |
| async | 异步调用 |

## 运算符

### 数学运算
| 运算符 | 说明 |
|--------|------|
| + | 加法 |
| - | 减法 |
| * | 乘法 |
| / | 除法 |
| % | 取模 |
| ++ | 自增 |
| -- | 自减 |
| += | 加等于 |
| -= | 减等于 |
| *= | 乘等于 |
| /= | 除等于 |
| %= | 取模等于 |

### 比较运算符
| 运算符 | 说明 |
|--------|------|
| < | 小于 |
| <= | 小于等于 |
| > | 大于 |
| >= | 大于等于 |
| == | 等于 |
| != | 不等于 |
| === | 等于 |
| !== | 不等于 |

### 逻辑运算符
| 运算符 | 说明 |
|--------|------|
| && | 并且 |
| \|\| | 或者 |
| ! | 取反 |

### 位运算符
| 运算符 | 说明 |
|--------|------|
| & | 与 |
| \| | 或 |
| ^ | 异或 |
| ~ | 取反 |
| << | 左移 |
| >> | 右移 |
| >>> | 无符号右移 |

## 数据类型

| 类型 | 写法 |
|------|------|
| byte | `123b`、`123B` |
| short | `123s`、`123S` |
| int | `123` |
| long | `123l`、`123L` |
| float | `123f`、`123F` |
| double | `123d`、`123D` |
| BigDecimal | `123m`、`123M` |
| boolean | `true`、`false` |
| string | `'hello'` 或 `"hello"` |
| string | `"""多行文本块,主要用于编写SQL"""` |
| Pattern | `/\d+/g`,`/pattern/gimuy` 用于定义正则 |
| lambda | `()=>expr`、`(param1,param2....)=>{...}` |
| list | `[1,2,3,4,5]` |
| map | `{key : value,key1 : value}` 或 `{[key] : "value"}` |

## 三元运算符

三元运算符是`if`语句的简写形式，其工作方式类似于Java中，例如`true ? "yes" : "no"`

增强的`if`和三元运算符，不再强制值必须是布尔类型，可以写`if(xxx)`的形式当`xxx`为以下情况时为`false`、其它情况为`true`：
- `null`
- 空集合
- 空Map
- 空数组
- 数值==0
- 空字符串
- `false`
