JS操作符

数学操作符(加、减),位操作符,关系操作符,相等操作符

一元操作符

1.递增/递减操作符

let age =5
console.log(++age)		//6
console.log(age++)		//5

2.一元加和减
一元加放在变量前面,对数值没有任何影响。
一元减放在变量前面,把数值变为负值。如把1转换为-1

一元加和减操作符主要用于基本的算术,也可以用于数据类型转换

let s1 = "1.1"
s1 = -s1		//变为-1.1
位操作符
10010		//18
补码【不看符号位,取反码,+1,加上原来的符号位】
(1)确定绝对值的二进制表示,如-18=182)找到数值的反码,01103)加1
let num = -18
console.log(num.toString(2))		//"-10010"

默认情况下,ES中所有整数都表示有符号数。
在应用位操作符时,64位数值会转换为32位数值,然后执行位操作。【注】NaN和Infinity在位操作中会被当成0处理

1.按位非(~)

// p61   即所有位0变1,1变0,包括符号位
let num1 = 25
let num2 = ~num1
console.log(num2)	//-26

//	等同于数值取反并减1
let num1 = 25
let num2 = -num1 - 1
console.log(num2)	//-26

两者结果一样,但位操作的速度快得多。因为位操作是在数值的底层表示上完成的

2.按位与(&)
1 1 1
1 0 0
0 1 0
0 0 0

let res = 25 & 3
console.log(res)	//1

3.按位或(|)
1 1 1
1 0 1
0 1 1
0 0 0

let res = 25 | 3
console.log(res)	//27

4.按位异或(^)
1 1 0
1 0 1
0 1 1
0 0 0

let res = 25 ^ 3
console.log(res)	//26

5.左移(<<)

let oldValue = 2
let newValue = oldValue << 5		//左移五位,64

左移保留它所操作数值的符号

6.有符号右移(>>)

let oldValue = 64
let newValue = oldValue >> 5		//右移五位,2

7.无符号右移(>>>)
对正数无let oldValue = 64
let newValue = oldValue << 5 //又移五位,2影响,对负数来说,将符号位一起右移

let oldValue = -64	//11111111111111111111111111000000在计算机中用补码存储,方便计算
let newValue = oldValue >>> 5		//134217726
布尔操作符

1.逻辑非(!)
2.逻辑与(&&)
3.逻辑或(||)

let myObject = preferredObject || backObject

preferredObject 是首选值,如果它不是null,它就会被赋值给myObject,如果它是null,backObject则会被赋值给myObject

let flag1 = null || undefined;			//flag1 = undefined
let flag2 = null && undefined;			//flag2 = null
if (flag1 === true) console.log('flag1');
if (flag2 === false) console.log('flag2');

对于 || 来说,如果条件判断结果为 true 就返回第一个操作数的值,如果为 false 就返回第二个操作数的值。

&& 则相反,如果条件判断结果为 true 就返回第二个操作数的值,如果为 false 就返回第一个操作数的值。

|| 和 && 返回它们其中一个操作数的值,而非条件判断的结果。

乘性操作符

1.乘法操作符(*)
如果有不是数值的操作符,则先在后台用Number()转换后,再计算
2.除法操作符(/)
3.取模操作符(%)

指数操作符

Math.pow() **

Math.pow(3,2)   相当于  3 **2

let num = 3
num **=2		//9
加性操作符

1.加法操作符(+)
2.减法操作符(-)

关系操作符

< , > , <=, >=

let res = 5 > 3		//true
let res = "Brick" < "alphabet"		//true   B:66 a:97
let res = "22" < "3"		//true    "2":50  "3":51
let res = "22" < 3		//false   "22"会被转换为22
let res = "a" < 3		//false   "a"会被转换为NaN,涉及NaN结果就为false
相等操作符

1.等于(==)和不等于(!=
2.全等(===)和不全等(!==
由于等于和不等于涉及类型转换问题,所以推荐使用全等和不全等

条件操作符
let max  = (num1 > num2)? num1:num2
赋值操作符

=,*=,/=…

逗号操作符
let num1 = 1, num2 = 2, num3 = 3
let num =(5, 1, 4, 8, 0)	//num = 0,不常见
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值