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 HashTable
Jan 22 Javascript
google地图的路线实现代码
Aug 20 Javascript
三种Node.js写文件的方式
Mar 08 Javascript
jQuery如何封装输入框插件
Aug 19 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
Feb 22 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
Feb 24 Javascript
vue2.x select2 指令封装详解
Oct 12 Javascript
JavaScript 下载svg图片为png格式
Jun 21 Javascript
分享5个好用的javascript文件上传插件
Sep 16 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 Javascript
vue动态合并单元格并添加小计合计功能示例
Nov 26 Vue.js
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
不得不知的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
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
php文件上传表单摘自drupal的代码
2011/02/15 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
js数组Array sort方法使用深入分析
2013/02/21 Javascript
js Math 对象的方法
2013/09/01 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
python os模块简单应用示例
2019/05/23 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
python实现KNN近邻算法
2020/12/30 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
高中生学习生活的自我评价
2013/11/27 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
集体婚礼策划方案
2014/02/22 职场文书
个人廉洁自律承诺书
2014/03/27 职场文书
客户答谢会活动方案
2014/08/31 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
简易版租房协议书范本
2014/10/13 职场文书
总结会主持词
2015/07/02 职场文书
工作感言一句话
2015/08/01 职场文书
Python上下文管理器Content Manager
2021/06/26 Python
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS