这是javascript优化吗?
这样做快吗这是javascript优化吗?,javascript,Javascript,这样做快吗 (obj = {})[key] = val; 然后 ? 或者这仅仅是因为一行字更容易阅读 我怀疑这两个代码片段在性能上是否有任何差异。有些人只是喜欢以更简洁的方式编写代码。我个人认为第一个例子非常神秘;即使是作者也可能需要停下来,在六个月后重新阅读代码时弄清楚发生了什么 “有能力的程序员完全意识到自己脑袋的大小有限。因此,他以完全谦逊的态度完成任务,避免像瘟疫这样的聪明把戏。”-Edsger W.Dijkstra我怀疑这两个代码片段在性能上是否有任何差异。有些人只是喜欢以更简洁的方
(obj = {})[key] = val;
然后
?
或者这仅仅是因为一行字更容易阅读 我怀疑这两个代码片段在性能上是否有任何差异。有些人只是喜欢以更简洁的方式编写代码。我个人认为第一个例子非常神秘;即使是作者也可能需要停下来,在六个月后重新阅读代码时弄清楚发生了什么
“有能力的程序员完全意识到自己脑袋的大小有限。因此,他以完全谦逊的态度完成任务,避免像瘟疫这样的聪明把戏。”-Edsger W.Dijkstra我怀疑这两个代码片段在性能上是否有任何差异。有些人只是喜欢以更简洁的方式编写代码。我个人认为第一个例子非常神秘;即使是作者也可能需要停下来,在六个月后重新阅读代码时弄清楚发生了什么
“有能力的程序员充分意识到自己脑袋的大小有限。因此,他以完全谦逊的态度完成任务,避免像瘟疫这样的聪明把戏。”-Edsger W.Dijkstra我认为两个片段之间没有任何区别,第二个片段比第一个更可读。我认为两个片段之间没有任何区别,第二个片段比第一个更可读。不,没有真正的区别。对于大多数有经验的程序员来说,这可能是显而易见的,但我做了一个jsperf来证明这一点: 你看不到任何可复制的差异。如果存在差异,那么在任何情况下,它都将非常小,以至于您无法可靠地测量它
使用第一种形式的原因是它的书写时间更短,对于有经验的JavaScript程序员来说,阅读时间也可能更短。在某些情况下,它可能有助于使代码更加简洁或对称。就我个人而言,我并不讨厌第一种形式,但我不推荐它,因为它会使大多数人更难阅读代码。不,没有真正的区别。对于大多数有经验的程序员来说,这可能是显而易见的,但我做了一个jsperf来证明这一点: 你看不到任何可复制的差异。如果存在差异,那么在任何情况下,它都将非常小,以至于您无法可靠地测量它
使用第一种形式的原因是它的书写时间更短,对于有经验的JavaScript程序员来说,阅读时间也可能更短。在某些情况下,它可能有助于使代码更加简洁或对称。就我个人而言,我并不讨厌第一种形式,但我不推荐它,因为它会使大多数人更难阅读代码。这两种形式的功能完全相同。单行版本是压缩/缩微器内部应该做的事情,而不是用户显式地做。在我看来,不太容易理解。这两者做的事情完全相同。单行版本是压缩/缩微器内部应该做的事情,而不是用户显式地做。在我看来,不太可读。简而言之:没有功能上的差异,也没有评估方式上的差异。评估方法如下:
obj = {}
在内存中创建一个新对象,并将引用存储到名为obj
的变量中
在该赋值((obj={}).
)周围加上括号,以及在第二个示例(obj…
)中调用实例,都直接引用内存中的同一对象。唯一的区别是第二个代码示例写在新行上
从这里开始,代码完全相同:[key]=val
,将key
变量中存储的属性设置为val
中设置的值
这表明代码的计算结果完全相同,这意味着性能上不会有任何差异
我能想到为什么第一个示例是这样的两个原因,一个是使代码更加紧凑以减少文件大小,另一个原因只是某人的个人喜好。简言之:没有功能上的差异,也没有计算方式上的差异。评估方法如下:
obj = {}
在内存中创建一个新对象,并将引用存储到名为obj
的变量中
在该赋值((obj={}).
)周围加上括号,以及在第二个示例(obj…
)中调用实例,都直接引用内存中的同一对象。唯一的区别是第二个代码示例写在新行上
从这里开始,代码完全相同:[key]=val
,将key
变量中存储的属性设置为val
中设置的值
这表明代码的计算结果完全相同,这意味着性能上不会有任何差异
我能想到为什么第一个例子是这样的两个原因,一个是使代码更加紧凑以减少文件大小,另一个原因只是某人的个人喜好。这真的重要吗?还是让可读性和可维护性更好的代码更易于阅读?我发现恰恰相反,这真的重要吗?还是让可读性和可维护性更好的代码更易于阅读?我发现正好相反。该死,你比我快。我怀疑jsperf在这种微性能测量中是否可靠。@TedHopp这个jsperf似乎测量IE的速度很慢,而我的铬电脑是最快的(只是开玩笑:p)。有趣。我所有的jsperf测试似乎都显示了相同的东西!谢谢,也许有点不相关-有什么页面告诉我Javascript优化吗?该死,你比我快。我怀疑jsperf在这种微观性能测量中是否可靠。@TedHopp这个jsperf似乎测量IE速度慢,我的铬计算机是所有计算机中最快的(只是开玩笑:p)。有趣。