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常用代码段收集
Oct 28 Javascript
jquery Validation表单验证使用详解
Sep 12 Javascript
JavaScript数据结构与算法之集合(Set)
Jan 29 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
Sep 04 Javascript
BootStrap实现鼠标悬停下拉列表功能
Feb 17 Javascript
JS实现移动端实时监听输入框变化的实例代码
Apr 12 Javascript
JavaScript中常见的八个陷阱总结
Jun 28 Javascript
javascript+HTML5 canvas绘制时钟功能示例
May 15 Javascript
javascript的this关键字详解
May 20 Javascript
Vue搭建后台系统需要注意的问题
Nov 08 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
Dec 30 Javascript
vue3.0搭配.net core实现文件上传组件
Oct 29 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获取一个变量的名字的方法
2014/09/05 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
php实现贪吃蛇小游戏
2016/07/26 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
超级强大的表单验证
2006/06/26 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
2018/02/24 jQuery
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
web.py在模板中输出美元符号的方法
2014/08/26 Python
Python探索之Metaclass初步了解
2017/10/28 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
JD Sports西班牙:英国领先的运动服装公司
2020/01/06 全球购物
竞选班长自荐书范文
2014/03/09 职场文书
中秋节慰问信
2015/02/15 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
导游词之清晏园
2019/11/22 职场文书
go:垃圾回收GC触发条件详解
2021/04/24 Golang
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
python playwright 自动等待和断言详解
2021/11/27 Python
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android