• 是否包含指定字符: ~
  • 取整: |
  • 取半: >>
  • 成长值评级: ||
  • 判断奇偶: &
  • 交换两个数字的值: ^=
  • 2的n次方: << 和 ** 1 << n-1
  • 是否是指定字符串开头: ! 和 ^
  • 字符串转数字: +
  • 转为 Boolean 值: !!
  • 转为数字类型:~~

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

~"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)
}

2、取整: |

num | 0

//num为正数时,相当于Math.floor()向下取整
//num为负数时,相当于Math.ceil()向上取整
// |后面必须是0,是0达到的是取整的效果,不是0,相当于转换为二进制之后相加的结果
//(4|4)=4 即转换为二进制之后100 |100 相加得到100=4

例子

1.3 | 0 //

3、取半: >>

num >> 1

//num 整数

例:求 50 的 1/2

50 >> 1 //

4、成长值评级: ||

需求1:
成长值为5是1星;
成长值为10是2星;
成长值为12是3星;
成长值为15是4星;
其他都是0星。

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

//val 成长值。

5、判断奇偶: &

num & 1      //num 整数

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

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

方法1:使用位运行符:

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

方法2:使用数组:

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

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

方法1:使用位运行符:

1 << n-1        //2的n次方

//例子:2的3次方:
1<<3 //

方法2:使用幂运行符:

 x**y    //x的y次方

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

方法比较:

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

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

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

!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

9、字符串转数字: +

+str

//例:

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

10、转为 Boolean 值: !!

!!obj

//例:
!!'text' //true

11、转为数字类型:~~

~~‘1’=1
~~true == 1
~~false == 0
~~"" == 0
~~[] == 0 ~~undefined ==0
~~!undefined == 1
~~null == 0
~~!null == 1

js运算符的特殊应用的更多相关文章

  1. JS运算符

    JS运算符: 使用的运算符的时候不需要声明变量,运算符非变量:1.算术运算符 + - * / % (%为取余数运算符) (自增运算符++) (自减运算符 --) + 运算符作用:1.数值相加 2.字符 ...

  2. js 运算符优先级

    在看jquery源码,仔细看入口函数的时候,有点懵了.看到与或.多重三目,傻傻的分不清,就代码仔细的区分下运算符优先级,以前都是呼呼的飘过.看来任何一个细节都不能忽略,不然效率极低.. !functi ...

  3. js运算符单竖杠“|”的用法和作用及js数据处理

    js运算符单竖杠“|”的作用 很多朋友都对双竖杠“||”,了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js ...

  4. js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框

    js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...

  5. js运算符的一些特殊应用

    作者: 小文 来源: http://www.cnblogs.com/daysme/ 时间: 2017/3/2 17:21:03 本文集合了了js运算符的一些特殊应用. js位运行符的运用. js运算符 ...

  6. js课程 2-6 js如何进行类型转换及js运算符有哪些

    js课程 2-6 js如何进行类型转换及js运算符有哪些 一.总结 一句话总结: 1.所有类型->布尔类型(为假的情况)有哪些(6种)? 1)字符串('')2)整型(0)3)浮点型(0.0)4) ...

  7. js 运算符的执行顺序

    js 运算符的执行顺序 js 运算符优先级 Operator Precedence 下表从最高(21)到最低(1)优先顺序排列 left-to-right 从左到右 / 先左后右 right-to-l ...

  8. 《JavaScript高级程序设计》学习笔记(2)--JS运算符详解

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 思维导图 前面对JS的运算符的操作很多细节的东西没有提及,今天给大家分享一张网上找的思维导图,对这一部 ...

  9. 聊聊js运算符 ‘与(&&)’和‘ 或(||)’

    一,先来几个问题,看给位能都全部答对. var objA1 = {x:1}; var objA2 = {x:2}; var resultA = objA1 && objA2; //请问 ...

  10. JS运算符、NaN

    一.关系运算符  (< <= > >= == === != !==) 判断符号左右的两个数据的大小之间的关系,运算结果是一个布尔类型的值 ==   只判断值 ===即判断值并且 ...

随机推荐

  1. Catalyst 6500/6000 Switches ARP or CAM Table

    译:https://www.cisco.com/c/en/us/support/docs/switches/catalyst-6500-series-switches/71079-arp-cam-ta ...

  2. fastjson数据返回配置

    阿里的fastjson 包升级后,可能导致返回的json 数据,字段为null时不显示等问题 <dependency> <groupId>com.alibaba</gro ...

  3. Apache Shiro——初识

    Shrio是什么? Shrio是一个用Java开发的安全框架,用来保证系统或系统数据安全的.他可以用在大多数程序上,比如移动应用程序.Web程序或者大型的企业应用程序等. Shrio能干什么? 能用来 ...

  4. 使用Kubespray在ubuntu上自动部署K8s1.9.0集群

    Kubespray 是 Kubernetes incubator 中的项目,目标是提供 Production Ready Kubernetes 部署方案,该项目基础是通过 Ansible Playbo ...

  5. 使用阿里的EasyExcel遇到的一些坑(NoSuchMethodError异常)

    引入eayexcel依赖的时候已经包含了poi依赖

  6. python 切片技巧

    说明: 字符串[开始索引:结束索引:步长] 开始索引:从指定位置开始截取: 结束索引:从指定位置结束截取,但不包含该位置的字符. 步长:不指定时步长为1: 1)当步长为正数时候,那么切片是从左到右进行 ...

  7. ZOJ4104 Sequence in the Pocket(2019浙江省赛)

    思维~ #include<bits/stdc++.h> using namespace std; ; int a[maxn]; int b[maxn]; int N; int main ( ...

  8. Spring Boot RestApi 测试教程 Mock 的使用

    测试 Spring Boot Web 的时候,我们需要用到 MockMvc,即系统伪造一个 mvc 环境.本章主要编写一个基于 RESTful API 正删改查操作的测试用例.本章最终测试用例运行结果 ...

  9. 什么是函数,干嘛啊,怎么干。一个py程序员的视角.md

    目录 前言 本质 math definition py definition class 是类,是对象的蓝本 回到函数 一个结论 self 是什么? 以上就是py世界里函数的定义 什么是函数,干嘛啊, ...

  10. 【PAT甲级】1044 Shopping in Mars (25 分)(前缀和,双指针)

    题意: 输入一个正整数N和M(N<=1e5,M<=1e8),接下来输入N个正整数(<=1e3),按照升序输出"i-j",i~j的和等于M或者是最小的大于M的数段. ...