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
Sep 24 Javascript
EXT窗口Window及对话框MessageBox
Jan 27 Javascript
jquery绑定原理 简单解析与实现代码分享
Sep 06 Javascript
js 限制数字 js限制输入实现代码
Dec 04 Javascript
js window.onload 加载多个函数和追加函数详解
Jan 08 Javascript
js微信扫描二维码登录网站技术原理
Dec 01 Javascript
微信小程序 转发功能的实现
Aug 04 Javascript
vue监听scroll的坑的解决方法
Sep 07 Javascript
JS异步函数队列功能实例分析
Nov 28 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
Apr 17 Javascript
js实现图片跟随鼠标移动效果
Oct 16 Javascript
详解Vue3 Teleport 的实践及原理
Dec 02 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
完美解决PHP中文乱码
2009/11/26 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
用 JSON 处理缓存
2007/04/27 Javascript
jQuery 解析xml文件
2009/08/09 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
vue实现购物车的监听
2020/04/20 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
Python发送email的3种方法
2015/04/28 Python
九步学会Python装饰器
2015/05/09 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
领导四风问题整改措施思想汇报
2014/10/13 职场文书
见习报告怎么写
2014/10/31 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS