今天无意间看到群里面的朋友发的一道面试题,我当时就觉得这种题目真的很扯。。。没有实际的用途,完全就是让面试者使用奇技淫巧。🤤
可能出题者的意图就是想考察面试者的多方位思考能力吧~~~😂
题目如下:
var a = 10; var b = 20;
有了ES6,就很方便了,直接数组解构。
var a = 10; var b = 20; [b, a] = [a, b]; // a => 20 // b => 10
那么不用ES6呢?其实还可以利用JS弱类型的特点。
var a = 10; var b = 20; a = [a, b]; // 让 a 变成数组 b = a[0]; // 先取出 b a = a[1]; // 再覆盖 a
还可以利用计算的特点。
var a = 10; var b = 20; a = a + b; // 30 b = a - b; // b = 30 - 20 a = a - b; // a = 30 - 10
个人觉得利用数组的方式 (第二种)比较容易理解,当然ES6是最简单的。