js运算符的使用技巧 !!、~、|、+、&

前言

本文集合了了js运算符的一些特殊应用。

js位运行符的运用。
js运算符的使用技巧。

一、是否包含指定字符: ~

~“str1”.indexOf(“str2”)

str1 被查找的字符串
str2 查找的字符串
如果 str1 不含有 str2 ,则返回数字 0 。

例:

var str1='abc';
var str2='a';
if(~str1.indexOf(str2)){
 console.log('有'+str2) //有a
}else{
 console.log('无'+str2)
}

二、取整: |

num | 0

num 整数

例:

1.3 | 0 //1
}

三、取半: >>

num >> 1
num 整数
例:求 50 的 1/2

50 >> 1 //25
有除号 / 干嘛不用呢?多好呀: 50/2 //25

四、成长值评级: ||

需求1:
成长值为51星;
成长值为102星;
成长值为123星;
成长值为154星;
其他都是0星。

({'5':1,'10':2,'12':3,'15':4}[val] || 0);

val 成长值。

五、判断奇偶: &

num & 1

num 整数

例:

var num=3;
if (num & 1) {
  console.log("num是奇数"); //num是奇数
} else {
  console.log("num是偶数");
}

六、交换两个数字的值: ^=

使用位运行符:

var num1 = 1, num2 = 2;
num1 ^= num2;
num2 ^= num1;
num1 ^= num2;
console.log(num1,num2); //2 1

使用数组:

var num1 = 1, num2 = 2;
num1 = [num2, num2 = num1][0];
console.log(num1,num2); //2 1

七、2的n次方: << 和 **

1 << n-1
使用位运行符:
2的n次方
例:23次方:1<<3 //8
使用幂运行符:
个人觉得这个不如直接使用 幂 的方式好。
x的y次方: x**y
例:23次方:2**3 //8
方法比较:

使用 << 的方式可以支持负数,** 需要用括号否则出错。
使用 ** 比较直观,没研究过 << 方法的任意数的任意次方的规律。

1<<3 //8
2**3 //8
-1<<3 //-8
-2**3 // 报错
-(2**3) //-8
3<<2 //12 错误
3**2 //9 正确

八、是否是指定字符串开头: ! 和 ^

!str1.indexOf(“str2”)

例:

var str1='abc';
var str2='a';
if(!str1.indexOf(str2)){
 console.log('是开头')
}else{
 console.log('不是开头')
}

使用正则方式

/^a/.test('abc') //a开头,true
/c$/.test('abc') //c结尾,true
}

九、字符串转数字: +

+str

例:

var str='123';
typeof(str) //string
typeof(+str) //number

十、转为 Boolean 值: !!

!!obj

例:

!!'text' //true

总结

都是一些比较实用也比较简化的写法,缺点就是用到的时候不多,多多学习吧

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值