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 相关文章推荐
JavaScript使用cookie
Feb 02 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
Mar 24 Javascript
jQuery操作元素css样式的三种方法
Jun 04 Javascript
JQuery中上下文选择器实现方法
May 18 Javascript
创建你的第一个AngularJS应用的方法
Jun 16 Javascript
JavaScript学习笔记之取数组中最大值和最小值
Mar 23 Javascript
javascript拖拽应用实例(二)
Mar 25 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
Oct 14 Javascript
Vue 框架之动态绑定 css 样式实例分析
Nov 14 Javascript
详解vue父子组件关于模态框状态的绑定方案
Jun 05 Javascript
在vue-cli中引入lodash.js并使用详解
Nov 13 Javascript
jQuery实现朋友圈查看图片
Sep 11 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 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
js修改input的type属性问题探讨
2013/10/12 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
vue中的scope使用详解
2017/10/29 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
[01:12]DOTA2 2015年秋季互动指南
2015/11/10 DOTA
Python入门篇之字符串
2014/10/17 Python
python正则表达式match和search用法实例
2015/03/26 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
Python 使用多属性来进行排序
2019/09/01 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
Python tkinter和exe打包的方法
2020/02/05 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
教师实习自我鉴定
2013/12/14 职场文书
高中毕业生自我鉴定例文
2013/12/29 职场文书
2014年药房工作总结
2014/11/22 职场文书
泰山导游词
2015/02/02 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
Redis入门教程详解
2021/08/30 Redis