Javascript 直接密钥访问和对象分解之间的性能

Javascript 直接密钥访问和对象分解之间的性能,javascript,reactjs,Javascript,Reactjs,下面是最有效的代码 代码1 代码2* 我在一篇文章中读到,当您深入阅读对象下面的键值对时,会对性能产生影响。我知道访问一个级别对性能影响不大。但是我想从上面的代码示例中知道代码1和代码2,它们将更快、更高效。如果您看到销毁部分的传输代码,您会发现正在设置一个新变量 例如: const { type, size, } = props; 转换为 var type_1 = props.type; // dummy_name var size_1 = props.size; 因此,设置了一个

下面是最有效的代码

代码1

代码2*


我在一篇文章中读到,当您深入阅读对象下面的键值对时,会对性能产生影响。我知道访问一个级别对性能影响不大。但是我想从上面的代码示例中知道代码1和代码2,它们将更快、更高效。

如果您看到销毁部分的传输代码,您会发现正在设置一个新变量

例如:

const {
  type,
  size,
} = props;
转换为

var type_1 = props.type; // dummy_name
var size_1 = props.size;

因此,设置了一个额外的变量,并消耗了相对较高的内存。但是,性能上的差异非常小。

如果您看到销毁部分的传输代码,您会发现正在设置一个新变量

例如:

const {
  type,
  size,
} = props;
转换为

var type_1 = props.type; // dummy_name
var size_1 = props.size;
因此,设置了一个额外的变量,并消耗了相对较高的内存。但是,性能上的差异非常小。

在这种情况下,第二种选择肯定是严格意义上的

在有些情况下,如果为了可读性而牺牲效率,这对大多数人来说是很容易判断的

看,性能差异非常小,但确实存在

URL:

在这种情况下,第二种选择肯定是严格意义上的

在有些情况下,如果为了可读性而牺牲效率,这对大多数人来说是很容易判断的

看,性能差异非常小,但确实存在


URL:

您的示例代码2将更快,因为您没有创建任何额外的内存来存储值。为什么不自己运行一个基准测试呢?这可能有用:@Ryxle检查@zabusa中的javascript代码,我创建了一个jsperf测试。请检查您的示例代码2是否会更快,因为您没有创建任何额外的内存来存储值。为什么不自己运行一个基准测试呢?这可能有用:@Ryxle检查@zabusa中的javascript代码,我创建了一个jsperf测试。请检查@Ryxle,如果您发现它是正确的,请将其标记为正确。我想知道使用Babel转换时ES6 not performance中的结果。我们使用Babel为新ES功能提供跨浏览器支持。谢谢你的回答,但我在等待一个更好的答案。问题不是关于透明效率,而是代码的性能。透明过程不是必须的。@Ryxle如果您认为正确,请将其标记为正确。我想知道使用Babel转换时ES6 not performance中的结果。我们使用Babel为新ES功能提供跨浏览器支持。谢谢你的回答,但我在等待一个更好的答案。问题不是关于透明效率,而是代码的性能。转换过程不是必须的。所以,分解成本。所以,分解成本。