js运算符的一些特殊用法

时间:2021-05-26

本文集合了了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:
成长值为5是1星;
成长值为10是2星;
成长值为12是3星;
成长值为15是4星;
其他都是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次方
例:2的3次方:1<<3 //8

使用幂运行符:

个人觉得这个不如直接使用 幂 的方式好。

x的y次方: x**y

例:2的3次方:2**3 //8

方法比较:

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

1<<3 //82**3 //8-1<<3 //-8-2**3 // 报错-(2**3) //-83<<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) //stringtypeof(+str) //number

转为 Boolean 值: !!

!!obj

例:

!!'text' //true

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章