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的开源工具PACKER2.0.2
Nov 04 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
Nov 16 Javascript
基于jquery的jqDnR拖拽溢出的修改
Feb 12 Javascript
编写针对IE的JS代码两种编写方法
Jan 30 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
Nov 04 Javascript
JQuery中层次选择器用法实例详解
May 18 Javascript
JavaScript实现经典排序算法之冒泡排序
Dec 28 Javascript
解决vue项目报错webpackJsonp is not defined问题
Mar 14 Javascript
使用Vuex解决Vue中的身份验证问题
Sep 28 Javascript
Vue项目实现简单的权限控制管理功能
Jul 17 Javascript
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
微信小程序向Java后台传输参数的方法实现
Dec 10 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数据库连接
2006/10/09 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
php开发工具有哪五款
2015/11/09 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
php中array_column函数简单实现方法
2016/07/11 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
javascript 对象定义方法 简单易学
2009/03/22 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
python发送邮件实例分享
2017/07/28 Python
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
OpenCV 轮廓检测的实现方法
2019/07/03 Python
pandas的相关系数与协方差实例
2019/12/27 Python
python可视化text()函数使用详解
2020/02/11 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
Python加速程序运行的方法
2020/07/29 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
护士自荐信怎么写
2013/10/18 职场文书
思想品德课教学反思
2014/02/10 职场文书
《白鹅》教学反思
2014/04/13 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
获奖感言一句话
2015/07/31 职场文书
春节随笔
2015/08/15 职场文书