js运算符的一些特殊用法


Posted in Javascript onJuly 29, 2018

本文集合了了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

Javascript 相关文章推荐
用js实现键盘方向键翻页功能的代码
Jun 03 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
May 06 Javascript
Js 导出table内容到Excel的简单实例
Nov 19 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
Feb 12 Javascript
运用jQuery定时器的原理实现banner图片切换
Oct 22 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
jQuery实现的仿百度分页足迹效果代码
Oct 30 Javascript
JavaScript制作简单的框选图表
May 15 Javascript
浅谈Vue 数据响应式原理
May 07 Javascript
js中实例与对象的区别讲解
Jan 21 Javascript
解决vue-router路由拦截造成死循环问题
Aug 05 Javascript
原生JavaScript实现购物车
Jan 10 Javascript
不得不知的ES6小技巧
Jul 28 #Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
Jul 28 #Javascript
Angular6笔记之封装http的示例代码
Jul 27 #Javascript
Vue 中axios配置实例详解
Jul 27 #Javascript
vue中设置height:100%无效的问题及解决方法
Jul 27 #Javascript
vue中使用echarts制作圆环图的实例代码
Jul 27 #Javascript
vue 录制视频并压缩视频文件的方法
Jul 27 #Javascript
You might like
解析thinkphp中的导入文件标签
2013/06/20 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
javascript简单实现图片预加载
2014/12/03 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
Python动态加载模块的3种方法
2014/11/22 Python
Python中字典的基础知识归纳小结
2015/08/19 Python
python在不同层级目录import模块的方法
2016/01/31 Python
详解Python3中字符串中的数字提取方法
2017/01/14 Python
Python实现一个简单的验证码程序
2017/11/03 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
Python读写锁实现实现代码解析
2020/11/28 Python
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
医生自荐信
2013/10/11 职场文书
结构工程个人自荐信范文
2013/11/30 职场文书
业务员的岗位职责
2014/03/15 职场文书
国企干部对照检查材料
2014/08/22 职场文书
婚礼答谢礼品
2015/01/20 职场文书
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA