## 运算符
### 一元运算符
~~~
var box=100;
++box;
--box;
box++; //先赋值,再递增
box--;
+box; //取正,同时把类型转为Nubmer
-box; //取负同时把类型转为Nubmer
~~~
### 算术运算符
* 加 +
* 减 -
* 乘 *
* 除 /
* 取余 %
如果有值不是number类型,后台会自动转换为number;
number+字符串,+会变成连接符,结果是字符串
不同类型的值5种运算结果
### 关系运算符,返回布尔值
~~~
>
<
<=
>=
==
!=
~~~
有一个数字字符串,会被转为数字
2个都是数字字符串,比较第一个数的大小
2个都是字符串,比较ASCII码
~~~
3>'22';
'3'>'22';
~~~
特殊值比较
![](https://box.kancloud.cn/f057f1b71796bc0a8d094bd777554ad9_668x445.png)
### 逻辑运算符,一般是布尔值
* 逻辑与 &&
第二个值是对象,必须第一个值为true,返回对象,否则返回false;
如果第一个值是false,结果都是false
如果左边是undefined或Null,或者左边true,右边是undefined或null,结果是undefinded或null
* 逻辑或 ||
* 逻辑非 ! 先将这个值转为布尔值,然后取反
### 位运算符
* 位非 NOT(~)
* 位与 AND(&)
* 位或 OR(|)
* 位亦或 XOR(^)
* 左移 <<
* 右移 >>
* 无符号右移 >>>
### 赋值运算符
~~~
=
+=
-=
*=
/=
%=
<<=
>>=
>>>=
~~~
### 三元运算符
`a?b:c`