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 相关文章推荐
jquery实现div拖拽宽度示例代码
Jul 31 Javascript
jQuery中insertBefore()方法用法实例
Jan 08 Javascript
javascript比较两个日期相差天数的方法
Jul 24 Javascript
基于jquery实现放大镜效果
Aug 17 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
Nov 17 Javascript
JavaScript继承学习笔记【新手必看】
May 10 Javascript
JS实现拖动滚动条评分的效果代码分享
Sep 29 Javascript
JS HTML图片显示Canvas 压缩功能
Jul 21 Javascript
npm 下载指定版本的组件方法
May 17 Javascript
js实现下拉框二级联动
Dec 04 Javascript
怎样在vue项目下添加ESLint的方法
May 16 Javascript
小程序实现搜索框功能
Mar 26 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压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
Prototype Object对象 学习
2009/07/12 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
js获取某月的最后一天日期的简单实例
2013/06/22 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python 文件读写操作实例详解
2014/03/12 Python
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
python对视频画框标记后保存的方法
2018/12/07 Python
django中forms组件的使用与注意
2019/07/08 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
Linux的主要特性
2014/10/06 面试题
机械设计及其自动化专业求职信
2014/06/09 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
2015年安全生产目标责任书
2015/01/29 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis
java项目构建Gradle的使用教程
2022/03/24 Java/Android