目录
算术运算符
加法运算符
基本用法
加法运算符有两个作用:数值相加、字符串连接
- 如果其中一个运算子为字符串,则加法运算符的作用是连接字符串。这时候非字符串会转化为字符串
- 其他情况为数值相加,其他类型的值会转化为数值
指数运算符
使用**完成指数运算,前一个运算子是底数,后一个运算子是指数
指数运算符是右结合,多个指数运算相连时,先进行最右边的运算
2**3**2
// 等价于
2**(3**2)
比较运算符
关系运算符
如果两个运算子都是字符串,按照Unicode码点比较;否则转化为数值,再比较大小
严格等于运算符
- 对于原始类型的值(数值、字符串、布尔值),类型和值相等返回true;否则返回false
- +0和-0比较返回true
- NaN与任何值比较都返回false
- 对于复合类型(对象、数组、函数),如果指向同一个地址,则返回true;否则返回false
严格不相等运算符
a!==b等同于!(a===b)
等于运算符
- null和undefined相等
- 对于复合类型(对象、数组、函数),如果指向同一个地址,则返回true;否则返回false
如果两个运算子类型不同,会进行类型转化
- 原始类型的值(null和undefined除外)会转化为数值,再进行比较
- null和undefined不能转化为其他类型的值再比较
- 复合类型先调用对象的valueOf方法取得原始值
不等于运算符
a!=b等同于!(a==b)
二进制运算符
虽然在JS中,数值是以浮点数形式存储,但是在做位运算时,是以32位整数进行运算。并且返回值也是一个32位带符号的整数