js两个变量互换值

js两个变量交换值

这个问题看似很基础,可是有不少的实现方式,你知道的有多少呢,网上也有不少的方法,下面就来总结一下javascript

  • 中间变量(临时变量)
临时变量其实很好理解,经过一个中间变量进行交换值
  var strA = "a"; var strB = "b"; var strC;//中间变量 # 开始 strC = strB;//strC值是b strB = strA;//此时strB已经变成strA strA = strC;//让strA赋值strB的值 
  • 使用加减(针对数字)
var a=2,b=3; 加法算: a +=b;//a=5,b=3 b =a-b;//b=2 a =a-b;//b=3 减法算: a +=b;//a=5 b = a-b;//b=2; a -=b;//a=3 两种方法都须要两个值相加,而后作对于的加减算 
  • 对象和数组
var a="1",b="2"; 对象的方法: 先把a变成一个对象,即a={a:b,b:a} b=a.a;//1 a=a.b;//2 数组的方法: 数组其实和对象的思想差很少 a=[a,b]; b=a[0]; a=b[1]; 
  • 万能法(运用运算符优先级)
公式:a=[b,b=a][0] var a="1",b="code"; a=[b,b=a][0];//这样就成功了 console.log(a,b);//code 1 
  • ES6的解构赋值php

    什么是解构赋值?
    解构赋值容许你使用相似数组或对象字面量的语法将数组和对象的属性赋给各类变量。这种赋值语法极度简洁,同时还比传统的属性访问方法更为清晰。java

数组与迭代器的解构
  语法:[ variable1, variable2, ..., variableN ] = array; 这将为variable1到variableN的变量赋予数组中相应元素项的值 

能够去看看解构的赋值:http://es6.ruanyifeng.com/#docs/destructuringes6

let a = "one",b = "two"; [a, b] = [b, a]; console.log(a, b);//two one 
  • 利用try catch交换
var a=1,b=2; a=(function(){; try{return b} finally{b=a}} )(); 或字符串 var a = "aaa", b = "bbb"; a = (function() {; try { return b } finally { b = a } })(); console.log(a, b); 
  • 异或运算(针对数字)
var a = 1; // 二进制:0001 var b = 2; // 二进制:0010 a = a ^ b; // 计算结果:a = 0011, b = 0010 b = a ^ b; // 计算结果:a = 0011, b = 0001 a = a ^ b; // 计算结果:a = 0010, b = 0001 本身能够动手试一下 例子: var a = 0; var b = 1; a = (b = (a ^= b) ^ b) ^ a; console.log(a,b) 例子: var a = 0; // 二进制:0001 var b = 1; // 二进制:0010 a ^=b; b ^=a; a ^=b; console.log(a,b) 
  • 数组的两个值的交换
var arr = [item0,item1,...,itemN]; //最初使用这段代码来交换第0个和第K(k<N)个元素 arr[0] = arr.splice(k, 1, arr[0])[0]; var arr = [1,2,3,"aaa","bbb","ccc"]; arr[0] = arr.splice(3, 1, arr[0])[0]; console.log(arr.toString())//aaa,2,3,1,bbb,ccc
做者:程序蜗牛 连接:https://www.jianshu.com/p/fb863e73862f 来源:简书 简书著做权归做者全部,任何形式的转载都请联系做者得到受权并注明出处。
相关文章
相关标签/搜索