Javascript操作符知多少————查漏补缺

前言

之前刷LeetCode有序数组的平方的时候,我把按位异或^符号当作了幂运算符,找了半天没找到哪儿错了,后来把题解打开一行一行的看,发现就只有求平方的那一行不一样,最后查看资料才发现,在计算器中^符号才是幂运算符。今天就来我就带大家来复习一下JS操作符。

1.递增/递减操作符,分为加减号在前和加减号在后两种。

// 加减号在数字后,先赋值后计算,即语句先求值后变量才计算加减
let a = 12
let b = 10
let sum = a ++ + b
console.log(a,sum) // 13 22

// 加减号在数字前,先计算后赋值,即先计算变量后再求语句值
let a = 12 
let b = 10
let sum = ++ a + b
console.log(a,sum) // 13 23

2.加减乘除运算

加减乘除没什么好讲的,这里说一下我曾经一直把除号(/)当成整除,好像在C语言中5/2 = 2

这里讲下js取整运算
Math.ceil() 向上取整
Math.floor() 向下取整
Math.round() 四舍五入
parseInt() 取整

3.位运算符

1.按位非(~)
计算方法:数值取反减一
let num = 100 
console.log(~num)  // -101
2.按位与(&)
计算方法:对二进制的每一位进行与操作,都是1才是1,否者为0
let num1 = 8 // 1000
let num2 = 12 // 1100
console.log(num1&num2) // 1000 -> 8
3.按位或(|)
计算方法: 对二进制的每一位进行或运算,都是0为0,否者为
let num1 = 10 // 1010
let num2 = 5 // 0101
console.log(num1|num2)  // 1111 ->  15
4.按位异或(^)
计算方法:对二进制的每一位进行异或运算,同位相同为1,不同为0
let num1 = 10 // 1010
let num2 = 6   // 0110
console.log(num1^num2) // 1100  ->  12
5.左移(<<)
二进制所有位向左移动,后面补0,符号位不变
2>>5  10 --->  1000000  64
-2 >> 5     -64
6.有符号右移(>>)
二进制所有位向右移动,保留符号
64 >> 5  ---> 2
7.无符号右移(>>>)
正数的无符号右移和有符号右移一样
负数的无符号右移差别很大,
-64 >> 5  = 134217726

4.逻辑运算符

1.逻辑非(!) 取反操作符
对象取反  -->  false
空字符串取反  --> true
非空字符串取反  ->> false
0取反 -->  true
非零取反 --> false
null、undefined、NaN取反  -->  true
2.逻辑与(&&) 同真即真,其余都为false
1&&1  true
1&&0  false
3.逻辑或(||) 一真即真,同假为false
true || false   -->  true
false || false  --> false

5. 幂运算

**运算符与Math.pow()的结果一样

3**2    // 9
Math.pow(3,2) // 9

6.比较运算符

大于(>)、小于(<)、大于等于(>=)、小于等于(<=)

1.如果左右都为数字,按数值比较
2.如果为字符串,按位进行字符串编码比较
3.如果有任一为数字,则将不是数字的转化为数字再比较
4.如果有任一为对象,则执行valueOf()后再比较
5.如果有任一为布尔值,则转化为数字比较

7.相等操作符

分为(==)(!=)
1.如果任一操作数是布尔值,则转化为数字再比较
1 == true   // true  
2.如果一个为数字,另一个为字符串,则将字符串转化为数字再比较
1 == '1'  // true
3.如果一个是对象,另一个不是,则把取对象的valueof取原始值,再按上面的规则比较
[] == {} //false
[] == "" // true
4.null和undefined相等,但和其他不相等
null == undefined  // true
null == 0  // false
undefined == 0 // false

(===)(!==) 全等和不全等除了比较值还要比较值类型
1 === '1' // false
55 != '55'  // false   转化后相等
55 !== '55'  // true   类型不相等

以上就是今天的所有内容,点个赞支持一下,感激不尽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值