表达式
表达式一般由常量、变量、运算符、子表达式构成。最简单的表达式可以是一个简单的值。常量或变量。例:var a=10
运算符
运算符一般用符号来表示,也有些使用关键字表示。运算符由3中类型
 1.一元运算符:一个运算符能够结合一个操作数,把一个操作数运算后转换为另一个操作数。
 2.二元运算符:一个运算符可以结合两个操作数,形成一个复杂的运算,大部分都是二元运算符
 3.单元运算符:一个运算符可以结合三个操作数,把三个操作数合并为表达式,最后返回一个值。
 JavaScript运算符有:
| 分类 | 运算符 | 操作数类型 | 运算顺序 | 运算方向 | 说明 | 
|---|---|---|---|---|---|
| 算数运算符 | + | 数值 | 12 | 左 | 两数相加 | 
| ++ | 数值 | 14 | 右 | 自增 | |
| – | 数值 | 12 | 左 | 减法 | |
| – – | 数值 | 14 | 右 | 自减 | |
| – | 数字 | 14 | 右 | 一元求负 | |
| + | 数字 | 14 | 右 | 一元求正 | |
| * | 数值 | 13 | 左 | 乘法 | |
| / | 数值 | 13 | 左 | 除法 | |
| % | 数值 | 13 | 左 | 求余 | |
| 字符串运算符 | + | 字符串 | 12 | 连接两个字符串 | |
| += | 字符串 | 2 | 右 | 连接两个字符串,并将结果赋给第一个字符串 | |
| 逻辑运算符 | && | 布尔值 | 5 | 右 | 逻辑与全真则真 | 
| || | 布尔值 | 4 | 左 | 逻辑或,全假则假 | |
| ! | 布尔值 | 14 | 右 | 逻辑非,真则假,假则真 | |
| 位运算符 | & | 整数 | 8 | 左 | 按位与,两个操作数对应位都是1,返回1 | 
| | | 整数 | 6 | 左 | 按位或,两个操作数对应位都为0,返回0 | |
| ^ | 整数 | 7 | 左 | 按位异或。两个操作数对应位值有一个1则返回1 | |
| ~ | 整数 | 14 | 右 | 求反 | |
| << | 整数 | 11 | 左 | 左移(将第一操作数二进制的形式的每一位向左移,移动的位数由第二操作数决定。右面补0) | |
| >> | 整数 | 11 | 左 | 右移(将第一操作数二进制的形式的每一位向右移,移动的位数由第二操作数决定。忽略被移出的位) | |
| >>> | 整数 | 11 | 左 | 逻辑右移(将第一操作数二进制的形式的每一位向右移,移动的位数由第二操作数决定。忽略被移出的位,左面补0) | |
| 赋值运算符 | = | 标识符,任意 | 2 | 右 | 将第二操作数的值赋给第一操作数 | 
| += | 标识符,任意 | 2 | 右 | 两数相加,将和赋给第一个数 | |
| –= | 标识符,任意 | 2 | 右 | 两数相减,将值赋给第一个数 | |
| *= | 标识符,任意 | 2 | 右 | 两数相乘,将值赋给第一个数 | |
| /= | 标识符,任意 | 2 | 右 | 两数相除,将商赋给第一个数 | |
| &= | 标识符,任意 | 2 | 右 | 执行按位与,将结果赋给第一个操作数 | |
| ^= | 标识符,任意 | 2 | 右 | 执行按位异或,将结果赋给第一个操作数 | |
| |= | 标识符,任意 | 2 | 右 | 执行按位或,将结果赋给第一个操作数 | |
| <<= | 标识符,任意 | 2 | 右 | 执行左移,将结果赋给第一个操作数 | |
| >>= | 标识符,任意 | 2 | 右 | 执行右移,将结果赋给第一个操作数 | |
| >>>= | 标识符,任意 | 2 | 右 | 执行逻辑右移,将结果赋给第一个操作数 | |
| %= | 标识符,任意 | 2 | 右 | 计算两个数相除的余数,并将余数赋给第一个数 | |
| 比较运算符 | == | 任意 | 9 | 左 | 操作数相等,则返回真 | 
| === | 任意 | 9 | 左 | 操作数完全相等,则返回真 | |
| != | 任意 | 9 | 左 | 操作数不相等,则返回真 | |
| !== | 任意 | 9 | 左 | 操作数不完全相等,则返回真 | |
| > | 数值或字符串 | 10 | 左 | 左操作数大于右操作数,返回真 | |
| < | 数值或字符串 | 10 | 左 | 左操作数小于右操作数,返回真 | |
| >= | 数值或字符串 | 10 | 左 | 左操作数大于等于右操作数,返回真 | |
| <= | 数值或字符串 | 10 | 左 | 左操作数小于等于右操作数,返回真 | |
| 特殊运算符 | ?: | 布尔值,任意,任意 | 3 | 右 | 执行一个简单的if···else语句 | 
| , | 任意 | 1 | 左 | 计算两个表达式,返回第二个表达式的值 | |
| delete | 属性标识 | 14 | 右 | 允许删除一个对象的属性或数组中的指定元素 | |
| new | 类型,参数 | 15 | 右 | 允许创建一个用户自定义的对象类型或内建对象类型的实例 | |
| typeof | 任意 | 14 | 右 | 返回一个字符串,并说明其数据类型 | |
| instanceof | 对象,类型 | 10 | 左 | 检查对象的类型 | |
| in | 字符串,对象 | 10 | 左 | 检查一个属性是否存在 | |
| void | 任意 | 14 | 右 | 计算一个表达式但不返回值 | |
| . | 对象,标识符 | 15 | 左 | 属性存取 | |
| [ ] | 数组,整数 | 15 | 左 | 数组下标 | |
| ( ) | 函数,参数 | 15 | 左 | 函数调用 | |
| 实例: | 
<script>var a=10var b=20var c=a+bdocument.write("结果是:"+c)</script>
