js新手入门笔记01-交换2个变量的数据

211 阅读1分钟

1.使用第3个变量(变量可以看做一个地址)
var num1=10;
num2=20; //交换num1和num2的数值
var num3;

num3 = num1; //num3复制指向10的指针。
num1 = num2; //num1复制指向20的指针。
num2 = num3; //num2复制指向10的指针,完成交换。
console.log(num1,num2); //如果使用一般新手思维,num1=num2,那么就没有指针指向10了,也就无法复制,就会失去交换的机会

逻辑思维通俗理解:就好比你和的朋友一起搬东西,这时你和你朋友需要交换你手上的东西,这时你可以把你的东西放路上,这路便是第三方变量,然后从你的朋友那里拿她手里的东西,她再从路上拿你的东西。

2. 用计算的方法 var num1=10;
num2=20; //交换num1和num2的数值
var num3;

num1= num1+num2; //将2值之和赋值给num1; 指向10的指针消失,新增一个指向30的指针
num2= num1-num2;//将10赋值给 num2;num2复制指向10的指针
num1=num1-num2;//将20赋值给num1; num1将记录指向20的指针,完成交换

    初学时疑惑点:为什么不直接用30-10.30-20来进行数据交换呢?
    			因为从实际情况出发,将10,20看成用户传进来的信息,一般情况下,你是不知道用户的信息的,所以使用30-10和30-20来进行数据交换没有实际意义。