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实现的分页函数
Dec 22 Javascript
15款优秀的jQuery导航菜单插件分享
Jul 19 Javascript
js修改table中Td的值(定义td的单击事件)
Jan 10 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
Nov 17 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
Sep 27 Javascript
基于JavaScript实现前端数据多条件筛选功能
Aug 19 Javascript
vue中的计算属性实例详解
Sep 19 Javascript
小程序实现留言板
Nov 02 Javascript
vue中实现Monaco Editor自定义提示功能
Jul 05 Javascript
使用js实现一个简单的滚动条过程解析
Sep 10 Javascript
JavaScript实现网页留言板功能
Nov 23 Javascript
node.js使用express-fileupload中间件实现文件上传
Jul 16 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
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
PHP使用递归生成文章树
2015/04/21 PHP
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
Bootstrap插件全集
2016/07/18 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
用python删除java文件头上版权信息的方法
2014/07/31 Python
python日志记录模块实例及改进
2017/02/12 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
Python连接Redis的基本配置方法
2018/09/13 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
Django如何实现上传图片功能
2019/08/16 Python
Python 实现try重新执行
2019/12/21 Python
python多线程和多进程关系详解
2020/12/14 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
Delphi笔试题
2016/11/14 面试题
时尚休闲吧创业计划书
2014/01/25 职场文书
计算机学生求职信范文
2014/01/30 职场文书
学生通报表扬范文
2015/05/04 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
使用python绘制横竖条形图
2022/04/21 Python