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("存在")
     
}

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

最新文章

  1. action和servlet的关系
  2. ansible代码分析第一篇--主文件—ansible分析
  3. Unity 插件制作笔记(持续更新)
  4. Unity学习疑问记录之新GUI
  5. 【Android测试】【随笔】获得App的包名和启动页Activity
  6. React Native 简介:用 JavaScript 搭建 iOS 应用(2)
  7. 【Codeforces Round#279 Div.2】B. Queue
  8. 关于activiti流程通过、驳回、会签、转办、中止、挂起等核心操作功能的封装
  9. sqlserver 2000新建sysadmin角色
  10. BestCoder Round #75 1003 - King's Order
  11. 国外代理server
  12. Xcode8中添加SnapKit框架报错,编译失败
  13. Python教程(2.6)——list和tuple简介
  14. vue分页组件二次封装---每页请求特定数据
  15. CH2401 送礼物(算竞进阶习题)
  16. python 5
  17. YOLO(5) YOLO2 代码讲解
  18. Swoole 进程管理
  19. 004_on-my-zsh漂亮的shell
  20. Linux下mysql的远程连接(转)

热门文章

  1. Django学习之路05
  2. MySQL增、删、改、查基础操作(C++)
  3. OPPO招聘-互联网测试
  4. Dubbo源码学习(二)
  5. MyEclipse下Spring+Hibernate整合
  6. CentOS7搭建FTP Server
  7. 从5个经典工作开始看语义SLAM
  8. Flash之后是不是该IE浏览器了
  9. JavaScript中的innerHTML属性的使用
  10. PDF 相关操作