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: 成长值为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 //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