首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >js两个变量值互换的多种方法

js两个变量值互换的多种方法

原创
作者头像
IT工作者
发布2022-05-11 17:37:47
发布2022-05-11 17:37:47
1.3K0
举报
文章被收录于专栏:程序技术知识程序技术知识

两个变量的值互换在面试中也会经常出现,如果可以说出多种方法,也会让面试官眼前一亮,今天小shy就给大家介绍几种方法,看看哪种更适合你。

1. 临时变量法

let a = 3, b = 5, c = b; // c: 5

b = a; // b: 3

a = c; // a: 5

2. 加减法

let a = 3, b = 5;

a = a + b; // a: 8

b = a - b; // 8 - 5 = 3

a = a - b; // 8 - 3 = 5

3. 数组法

let a = 3, b = 5;

a = [a, b]; // a: [3, 5]

b = a[0]; // 3

a = a[1]; // 5

4. 对象法

let a = 3, b = 5;

a = {

a,

b

}; // a: {a: 3, b: 5}

b = a.a; // 3

a = a.b; // 5

5. 数组运算法

我比较喜欢的一种:

let a = 3, b = 5;

a = [b, b = a][0];

// a = [5, b = 3][0]

// a = 5, b = 3

6. 解构赋值

let a = 3, b = 5;

[a, b] = [b, a];

// a: 5 b: 3

7. 按位异或

let a = 3, b = 5;

a ^= b;

b ^= a;

a ^= b;

// a: 5 b: 3

异或(^)的特点:

异或是用二进制数进行运算的,特点是只在一位上是 1 的时候返回 1,即两位都是 1 或 0,则返回 0(如果想详细了解位操作符可以去看小shy之前对位操作符的讲解的博客 JS位操作符详解)。

a的二进制:0011

b的二进制:0101

a ^= b的结果: a = 0110

0011

0101

————

0110

b ^= a的结果是:b = 0011 就是3的二进制数

0101

0110

————

0011

a ^= b的结果是:a = 0101 就是5的二进制

0110

0011

————

0101

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档