index = ~~this.userIndex

~~ 双破折号 如果是数字返回数字,如果不是数字 返回0

这个运算符有点意思:按位非【~】

先来几个例子:

~undefined: -1

~false: -1

~true: -2

~10:-11

找出规律了吧~~

再说一下运用场景:

之前判断字符串是否存在是这样写:

1
2
3
4
5
6
var str = "sdfjh2kdd";
if( str.indexOf("2")>-1 ){
  console.log("存在"
}else{
  console.log("不存在"
}

现在可以这样写:

1
2
3
4
5
6
7
var str = "sdfsdfs233";
 
if( ~str.indexOf('2') ){
 
    console.log("存在")
     
}

位运算的效率会比运算符高,如果不了解的也正好学习一下,免得看到【按位非~】运算符一脸懵,高级程序设计里面有一章是介绍这个的,可以回去翻一番。

js运算【按位非】~ (index = ~~this.userIndex)(~~ 双破折号 如果是数字返回数字,如果不是数字 返回0)的更多相关文章

  1. Handlebars.js循环中索引(@index)使用技巧(访问父级索引)

    使用Handlebars.js过程中,难免会使用循环,比如构造数据表格.而使用循环,又经常会用到索引,也就是获取当前循环到第几次了,一般会以这个为序号显示在页面上. Handlebars.js中获取循 ...

  2. js运算浮点数

    在js中做小数:9.3+0.3会发现,得到的结果并不是9.6,而是9.600000000000001.这是为什么? Javascript采用了IEEE-745浮点数表示法,这是一种二进制表示法,可以精 ...

  3. 对于JS == 运算的一些理解

    声明:本文是摘自一篇文章,放在这只为做为一个笔记能更好学习. 大家知道,==是JavaScript中比较复杂的一个运算符.它的运算规则奇怪,容易让人犯错,从而成为JavaScript中“最糟糕的特性” ...

  4. js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可)

    js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可) 一.总结 ajax读取json和读取普通文本,和获 ...

  5. JS对象 charAt() 方法可返回指定位置的字符。返回的字符是长度为 1 的字符串。

    返回指定位置的字符 charAt() 方法可返回指定位置的字符.返回的字符是长度为 1 的字符串. 语法: stringObject.charAt(index) 参数说明: 注意:1.字符串中第一个字 ...

  6. js运算【按位非】~

    这个运算符有点意思:按位非[~] 先来几个例子: ~undefined: -1 ~false: -1 ~true: -2 ~10:-11 找出规律了吧~~ 再说一下运用场景: 之前判断字符串是否存在是 ...

  7. js位运算-按位非

    正数 取得二进制表示 取反(发现符号位是1,表示负数) 符号位不变,其余位取反 取反后加一 负数 取得负数的二进制表示(即绝对值的二进制反码加一) 取反即可

  8. js方法参数中含有单引号双引号的处理

    最近在做项目时,遇到一个问题.当在js脚本中,拼接生成一个tr,然后添加到一个表格里. //假定testval是从后台传过来的数据 var testval = "含有'半角单引号的字符串&q ...

  9. Js参数值中含有单引号或双引号解决办法

    <script type="text/javascript"> function Display(LoginEmail, UserName, ID) {         ...

随机推荐

  1. JVM内存基本理解

    声明:本文内容仅作为本人方便记忆和查看所用. JVM有五块内存空间: 1.method area:用于存储已被加载的类信息.常量.静态变量.即时编译后的代码等数据. 注:在JDK8中,Method A ...

  2. chap4-关联接口测试-通过全局变量传递cookie

    # 1 http_request.py import requests class HttpRequest: def http_request(self, url, method, data=None ...

  3. JS做深度学习3——数据结构

    最近在上海上班了,很久没有写博客了,闲下来继续关注和研究Tensorflow.js 关于深度学习的文章我也已经写了不少,部分早期作品可能包含了不少错误的认识,在后面的博文中会改进或重新审视. 今天聊聊 ...

  4. (转)python中join()方法

    原文:http://blog.csdn.net/weixin_40475396/article/details/78227747 函数:string.join() Python中有join()和os. ...

  5. unittest(9)- 使用ddt给测试用例传参

    # 1. http_request.py import requests class HttpRequest: def http_request(self, url, method, data=Non ...

  6. 吴裕雄--天生自然 R语言开发学习:时间序列

    #-----------------------------------------# # R in Action (2nd ed): Chapter 15 # # Time series # # r ...

  7. 监控Linux系统节点和服务CPU内存性能

    1.获取信息 #!/bin/bash #描述: # 把top信息输入到一个文件内部 #作者:孤舟点点 #版本:1.0 #创建时间:-- :: PATH=/bin:/sbin:/usr/bin:/usr ...

  8. VMware 虚拟机重启后获取不到ip的问题

    问题: VMware 虚拟机重启后获取不到ip,如图: 解决: 打开windows服务管理器,将VMware相关服务启动. 验证: 重启网络服务后,成功获取ip.

  9. S07

    push 和 append 的表现不同, push 一次只添加单个参数到列表末端, append 一次可以添加多个参数. use v6; my @d = ( [ 1 .. 3 ] ); @d.push ...

  10. paxos算法学习总结

    核心思想 分布式系统架构下如何让整体尽快达成一致观点,也就是多个不同观点收敛到一个观点的过程. 难点 可能会发生少数节点故障,但绝不是大面积故障,不然系统也没法正常工作. 由于存在单点故障,因此不可能 ...