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 相关文章推荐
InnerHtml和InnerText的区别分析
Mar 13 Javascript
jQuery的实现原理的模拟代码 -1 核心部分
Aug 01 Javascript
javascript学习笔记(八)正则表达式
Oct 08 Javascript
JavaScript学习笔记之ES6数组方法
Mar 25 Javascript
Javascript使用uploadify来实现多文件上传
Nov 16 Javascript
jQuery使用Layer弹出层插件闪退问题
Dec 22 Javascript
AjaxUpLoad.js实现文件上传
Mar 05 Javascript
JSON的parse()方法介绍
Jan 31 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
Jun 04 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
Nov 20 Javascript
JS原型prototype和__proto__用法实例分析
Mar 14 Javascript
jquery实现进度条状态展示
Mar 26 jQuery
不得不知的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
谈一谈收音机的高放电路
2021/03/02 无线电
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
基本DOM节点操作
2017/01/17 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
layui的select联动实现代码
2019/09/28 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
[06:48]DOTA2-DPC中国联赛2月26日Recap集锦
2021/03/11 DOTA
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
基于Python实现用户管理系统
2019/02/26 Python
python pygame实现五子棋小游戏
2020/10/26 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
python 调用Google翻译接口的方法
2020/12/09 Python
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
英国莱斯特松木橡木家具网上商店:Choice Furniture Superstore
2019/07/05 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
办公室文员工作自我评价
2013/12/01 职场文书
个人简历自荐信
2013/12/05 职场文书
教师自我鉴定范文
2014/03/20 职场文书
升职自荐信范文
2015/03/27 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫