number运算符
- 加减乘除
- 余数 -1%7 //-1
- 指数 x**3
- 自增自减 x++ , ++x x在前值为前,x在后值为后
- 求值运算符 +x
- 负数运算符 -x 正变负,负变正
String运算符
连接运算 ‘123’+‘456’ //‘123456’
变态例子:
‘
比较运算符
- > <
- >= <=
- == !==
- === !===
忠告:永远不要用==,用===代替
==的问题在于,它总是自作聪明(自动类型转换)
布尔运算符
或且非
- ||
- &&
- !
短路逻辑:
- console&&console.log&&console.log('hi') 以防console不存在报错
- a=a || 100 a的保底值
二进制运算符
1、或,与,否
- | 两个都为0,则结果为0,否则为1
- & 两个都为1,结果为1
- ~
2、异或 ^
两个位相同,则结果为0,否则为1
3、左移右移
>> 和 <<
4、头部补零的右移运算符
>>>
5、使用与运算符判断奇偶
偶数 & 1 = 0
奇数 & 1 =1
6、使用~、>>、<<、>>>、 | 来取整
- ~~ 6.12
- 6.12>>0
- 6.12<<0
- 6.12 | 0
- 6.12 >>> 0
注意:位运算会消除小数部分
7、使用^来交换 a b 的值
var
点运算符
语法:对象.属性名 = 属性值
作用:读取对象的属性值
疑问:不是对象,为什么也可以有属性?
- js有特殊的逻辑,点前面不是对象,就把他封装成对象
- number会变成Number对象
- string会变成String对象
- bool会变成Boolean对象
程序员从不用这三个对象,只用简单类型
void运算符
语法:void表达式或语句
作用:求表达式的值,或执行语。
void的值总是undefined
逗号运算符
默认将最后一个表达式的作为返回值
语法:表达式1,表达式2,……,表达式n
作用:将表达式n的值作为整体的值
例子:
let