本文集合了了js運(yùn)算符的一些特殊應(yīng)用。
js位運(yùn)行符的運(yùn)用。
js運(yùn)算符的使用技巧。
~"str1".indexOf("str2")
str1 被查找的字符串
str2 查找的字符串
如果 str1 不含有 str2 ,則返回?cái)?shù)字 0 。
例:
var str1='abc';var str2='a';if(~str1.indexOf(str2)){ console.log('有'+str2) //有a}else{ console.log('無'+str2)}num | 0
num 整數(shù)
例:
1.3 | 0 //1
num >> 1
num 整數(shù)
例:求 50 的 1/2
50 >> 1 //25
有除號(hào) / 干嘛不用呢?多好呀: 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 整數(shù)
例:
var num=3;if (num & 1) { console.log("num是奇數(shù)"); //num是奇數(shù)} else { console.log("num是偶數(shù)");}使用位運(yùn)行符:
var num1 = 1, num2 = 2;num1 ^= num2;num2 ^= num1;num1 ^= num2;console.log(num1,num2); //2 1
使用數(shù)組:
var num1 = 1, num2 = 2;num1 = [num2, num2 = num1][0];console.log(num1,num2); //2 1
1 << n-1
使用位運(yùn)行符:
2的n次方
例:2的3次方:1<<3 //8
使用冪運(yùn)行符:
個(gè)人覺得這個(gè)不如直接使用 冪 的方式好。
x的y次方: x**y
例:2的3次方:2**3 //8
方法比較:
使用 << 的方式可以支持負(fù)數(shù),** 需要用括號(hào)否則出錯(cuò)。
使用 ** 比較直觀,沒研究過 << 方法的任意數(shù)的任意次方的規(guī)律。
1<<3 //82**3 //8-1<<3 //-8-2**3 // 報(bào)錯(cuò)-(2**3) //-83<<2 //12 錯(cuò)誤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結(jié)尾,true+str
例:
var str='123';typeof(str) //stringtypeof(+str) //number
!!obj
例:
!!'text' //true
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注