先看个栗子:

~~false === 0
~~true === 1
~~undefined === 0
~~!undefined === 1
~~null === 0
~~!null === 1  ~~"" === 0~~!"" === 1

~是按位取反的意思,计算机里面处理二进制数据时候的非,~~就是再转回来,利用两个按位取反的符号,进行类型的转换,转换成数字符号。

而在计算机里面的^=是异或运算,相同取0,不同取1.

两个整数交换可以酱紫表示:

var  a = 10,b=20;
a ^= b; b^=a;a^=b;   

 将a = a ^= b; b = b^=a; a = a^=b;在js中类似于:

var a = 1,b = 2;
a = a + b;
b = a - b;
a = a - b;
a // 2
b //1

不过这种方法适用于任意两个数字类型的交换,无论是整数类型还是小数。

其次,交换两个变量,最简单的方式是:

var a = 2,b = 'Miya';
[a,b,] = [b,a,]
a // Miya
b //2

 这个是ES6中的数组的解构赋值,很方便的进行两个变量的交换。 

转载于:https://www.cnblogs.com/tangjiao/p/9131993.html

js中~~和^=分别代表什么,用处是什么?相关推荐

  1. js中一些常用的基本函数

    如何使用jquery刷新当前页面 下面介绍全页面刷新方法:有时候可能会用到 window.location.reload()刷新当前页面. parent.location.reload()刷新父亲对象 ...

  2. 网站开发中JS中的常用语句

    1.document.write( " "); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document- >html- >(head,body ...

  3. js中的关键字总结呢

    1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4. ...

  4. js两个问号代表什么_js中的Object.assign接受两个函数为参数的时候会发生什么?...

    缘由 今天看到一段代码 return Object.assign(func1, func2); 心生疑惑,为什么 Object.assign 的参数可以是函数? 于是有了下面这一堆东西,其实都是老生常 ...

  5. 简述JS中 appy 和 call 的详细用法

    Apply 和 Call 两个老生常言的方法,使用过程的一些细节还是有很大的异同,具体使用情况可以参照下面例子详细回顾一下. 区别和详解:js中call()和apply()的用法 1.关于call() ...

  6. js中的各种宽高以及位置总结

    在javascript中操作dom节点让其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就不能理解js的运动原理,同时,由于这些属性概念较多,加上浏览器之 ...

  7. JS中window.document对象

    小知识点注:外面双引号,里面的双引号改为单引号:                  在div里面行高设置和整个外面高度一样,才能用竖直居中,居中是行居中                  文本框取出来 ...

  8. thymeleaf加载不了js引用_web前端教程之js中的模块化一

    web前端教程之js中的模块化一:我们知道最常见的模块化方案有CommonJS.AMD.CMD.ES6,AMD规范一般用于浏览器,异步的,因为模块加载是异步的,js解释是同步的,所以有时候导致依赖还没 ...

  9. JS中的prototype、__proto__与constructor

    作为一名前端工程师,必须搞懂JS中的prototype.__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞 ...

最新文章

  1. python和java哪个-Python和Java两门编程语言,学习哪个更好?
  2. Ubuntu系统安装VNC(VNCViewer)
  3. /bin/bash: jar: command not found
  4. 大学计算机无线论文范文大全,大学计算机论文范文
  5. mysql查询父子关系树_swt 生成树[读取Mysql数据库中的父子关系表]
  6. tiny xml 使用总结
  7. 9 计算机组成原理第五章 中央处理器 指令流水线
  8. 工时单位天与人天的区别?
  9. 【dp】CF17C. Balance
  10. MQTT.fx客户端MQTT接入阿里云物联网平台,登录、订阅、发布消息
  11. Android中ICS4.0源码Launcher启动流程分析【android源码Launcher系列一】
  12. FFmpeg4.3.2之ffplay log输出级别(三十)
  13. AndroidManifest.xml 中application 的 android:name 属性作用
  14. QT tablewidget设置表头
  15. shell脚本大全-个人收藏
  16. ppt模板网站哪个好
  17. 高等数学学习笔记——第四十讲——微积分基本公式
  18. Linux打补丁遇到Hunk# succeeded at提示
  19. web3开发课程精选
  20. 什么是温顺型人格?温顺型性格如何做职业规划?

热门文章

  1. mysql mycat docker_docker-mycat-mysql
  2. differential forms
  3. 高斯牛顿法 matlab代码实现
  4. 图像的输入\输出和显示
  5. python 函数图解_Python函数说明(一)
  6. 从零开始刷Leetcode——数组(581.605.628)
  7. Stacking:Catboost、Xgboost、LightGBM、Adaboost、RF etc
  8. linux yum仓库制作,yum仓库搭建之RPM包制作
  9. 二叉搜索树的公共祖先,二叉树的最近公共祖先
  10. 安卓10省电还是费电_拍照成罪魁祸首 安卓十大耗电App排行公布