javascript - 如何理解这种语法?[a, b] = [b, a]?
问题描述
从某种意义上说,我知道它可能是来自 es6 的语法,它改变了 and 的位置a
,b
但我想知道它对 web 前端程序员来说是否优雅?是否有必要替换中间变量,例如:
var a=3,b=5;
var temp;
temp = a;
a = b;
b = temp;
对此:
var a = 3,b = 5;
[a,b] = [b,a];
他们在性能上有什么区别?
解决方案
两者都是交换变量的有效方式。
解构需要更少的代码,可以被认为是一种更优雅的方法,但它目前看起来比使用临时变量要慢:
const startTempVariable = new Date();
for (let i = 0; i < 100000000; i++) {
var a=3, b=5;
var temp;
temp = a;
a = b;
b = temp;
}
console.log(`temp variable: ${new Date() - startTempVariable}ms`);
const startDestructuring = new Date();
for (let i = 0; i < 100000000; i++) {
var a=3, b=5;
[a,b] = [b,a];
}
console.log(`destructuring: ${new Date() - startDestructuring}ms`);
不过,这两种方法都非常快,因此对于大多数 Web 编程场景,任何一种方法都可以。
如果您正在为性能编码一些东西,您目前希望使用临时变量。
推荐阅读
- c# - 如何在 C# 中获取/打印数组的名称/标识符?
- python - 使用 Djoser 和 Django Rest Framework 激活帐户
- php - PHP-FPM 提升性能
- hyperledger - 如何更改 Hyperledger 锯齿供应链 API(FishNet 示例)中的共识算法?
- ios - Swift - 从主线程访问 UIApplication.shared.statusBarOrientation
- ios - 在 Swift 语言的 Apollo GraphQl 客户端中使用 JSONDecoder
- sql - SQLite 中 PRIMARY KEY 的 INT 数据类型用完
- javascript - 如何获取数据表输入字段复选框选中值
- c# - 在 DI 模式的上下文中,“绑定”是什么意思?
- python - 限制组用户在 Django 上使用特定应用程序