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 相关文章推荐
jQuery与ExtJS之选择实例分析
Aug 19 Javascript
jquery $.fn $.fx是什么意思有什么用
Nov 04 Javascript
js实现div的切换特效上一个下一个
Feb 11 Javascript
理解javascript定时器中的setTimeout与setInterval
Feb 23 Javascript
jQuery和JavaScript节点插入元素的方法对比
Nov 18 Javascript
Vue.js中数据绑定的语法教程
Jun 02 Javascript
vue 2.x 中axios 封装的get 和post方法
Feb 28 Javascript
详解webpack-dev-server的简单使用
Apr 02 Javascript
Vue 页面跳转不用router-link的实现代码
Apr 12 Javascript
简单了解Javscript中兄弟ifream的方法调用
Jun 17 Javascript
Vue.js实现立体计算器
Feb 22 Javascript
vue开发简单上传图片功能
Jun 30 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
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
PHP 写文本日志实现代码
2010/05/18 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
对比分析php中Cookie与Session的异同
2016/02/19 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
Python线性方程组求解运算示例
2018/01/17 Python
python实现k-means聚类算法
2018/02/23 Python
python编程使用协程并发的优缺点
2018/09/20 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
市场营销专业毕业生自荐信
2013/11/02 职场文书
护士思想汇报
2014/01/12 职场文书
平民服装店创业计划书
2014/01/17 职场文书
农民工创业典型事迹
2014/01/25 职场文书
团日活动总结书格式
2014/05/08 职场文书
项目投资建议书
2014/05/16 职场文书
简历中自我评价范文
2015/03/11 职场文书
导游词之珠海轮廓
2019/10/25 职场文书