补文第一更,后续会慢慢补上
本文一共介绍了四种方法,有引入地三个变量,也有不引入
目录
第一种:添加临时变量
这里通过添加临时变量c,一个空的变量(记得使用Number转变成数字类型哦),然后三个变量之间进行交换,就达到了交换变量值的效果
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
var a = 1;
var b = 2;
var c = '';
c = Number(c)
c = a;
a = b;
b = c;
console.log(a,b)
</script>
</body>
</html>
第二种:加减法(在不引入第三个变量的情况下)
这里的逻辑思路是先把a的值改变,把a,b的和赋值给a,然后b的值就可以通过a(此时的a的值是a,b的和,也就是3,不再是1)减去现在b的值,就得到了a最初的值,初步实现了一次变量交换,然后因为此时的b的值是1,所以我们用现在的a减去现在的b,再赋值给a就成功的改变了a的值,这样就实现了a,b值的互相交换
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
//加减法
var a = 1;
var b = 2;
a = a + b;
b = a - b;
a = a - b;
console.log(a,b)
</script>
</body>
</html>
第三种:数组法
这个方法是通过数组下标的这个特性来进行交换,但这种方法和第一种创建变量方法大体上一致,所以两个选一个理解即可
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
//数组法
var a = 1;
var b = 2;
var c = [];
c = [a,b];
a = c[1];
b = c[0];
console.log(a,b);
</script>
</body>
</html>
第四种(涉及到es6)(在不引入第三个变量的情况下)
这种方法同样涉及到了数组,通过下标赋值转换达到效果
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
//es6
var a =1;
var b =2;
[a,b] = [b,a]
console.log(a,b)
</script>
</body>
</html>
全部代码附上
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
//数组法
// var a = 1;
// var b = 2;
// c = [a,b];
// a = c[1];
// b = c[0];
// console.log(a,b);
//加减法
// var a = 1;
// var b = 2;
// a = a + b;
// b = a - b;
// a = a - b;
// console.log(a,b)
//临时变量法
// var a = 1;
// var b = 2;
// var c = '';
// c = Number(c)
// c = a;
// a = b;
// b = c;
// console.log(a,b)
//es6
// var a =1;
// var b =2;
// [a,b] = [b,a]
// console.log(a,b)
</script>
</body>
</html>