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 覆盖和重载 函数
Sep 25 Javascript
javascript 从if else 到 switch case 再到抽象
Jul 17 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
Jun 12 Javascript
jQuery 获取页面li数组并删除不在数组中的key
Aug 02 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
Dec 02 Javascript
webuploader模态框ueditor显示问题解决方法
Dec 27 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
vue.js删除列表中的一行
Jun 30 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
Oct 12 Javascript
基于vue.js实现分页查询功能
Dec 29 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
Jan 02 Javascript
jquery实现的放大镜效果示例
Feb 24 jQuery
不得不知的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
php代码架构的八点注意事项
2016/01/25 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
js实现简单登录功能的实例代码
2013/11/09 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
[01:11:28]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第一场 1月8日
2021/03/11 DOTA
python list使用示例 list中找连续的数字
2014/01/27 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
python实现文件的备份流程详解
2019/06/18 Python
python多任务之协程的使用详解
2019/08/26 Python
Python列表操作方法详解
2020/02/09 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
大学毕业登记表自我鉴定
2013/10/09 职场文书
军训自我鉴定200字
2014/02/13 职场文书
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
社区交通安全实施方案
2014/03/22 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
责任心演讲稿
2014/05/14 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
校长一岗双责责任书
2015/05/09 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby
SQL Server中锁的用法
2022/05/20 SQL Server