![]() |
1
15
编译器不知道右侧的表达式是否有副作用,因此如果您对它进行两次编码,它必须重新计算它。因此,第一个更高效,因为它不会重新执行getItem&toString调用。 因此,如果程序员知道这些调用是纯/等幂的,那么应该首先编写代码。 |
![]() |
2
6
AS Brian 尽管第一种方法在现实世界中是否会有很大的不同,但它将更加有效,这取决于复制函数的价格以及整个代码的调用频率。 然而,除了效率更高之外,第一种方法更好地表明了意图——您的意思是将相同的值赋给这两件事。它也有助于维护性,因为如果需要更改,您只需要在一个地方更改它。对我来说,这两个方面通常比效率更重要。 |
![]() |
3
2
还有另一个选项-复合分配:
使用此用法,编译器将计算
效率很高,但老实说,我不会对原始变量感到太兴奋。 |
![]() |
4
0
好吧,假设
一个问题 做 然而,考虑一下,如果从另一个线程同时访问/更改项,第二个示例可能在第一行和第二行中呈现不同的结果。 |
![]() |
5
0
如果要多次使用某个局部变量,我就习惯于将它存储在该局部变量中。不过,通常情况下,这是因为我更喜欢代码的紧凑性,而不是过于关注效率——不过,如果在循环中重复使用代码,我肯定会这样做。 有时,我不一致,只会重新输入,特别是如果只使用访问器而不调用需要计算的方法。 |
![]() |
6
0
这是我的经验法则。当有疑问时, profile your code . 优化编译器可以删除大量代码,从而使代码运行更快。 还必须考虑两个事实:
这意味着在粗略的观察下,您的代码可能非常快,但是如果您生成了大量垃圾,那么您的程序在运行一段时间后的性能将受到影响。 |
![]() |
7
0
可读性很重要。 “s”命名变量的用法是什么? 此外,字段名将更合理,而不是使用[0]。 |
![]() |
8
0
还有其他问题需要考虑。如果使用
我经常看到的一件事是函数的赋值返回到一个变量,即使这个值只在一个地方使用,我讨厌这样做,因为(不管那个变量叫什么名字)不可避免地导致必须找到那个变量被分配到哪里去知道它真正代表了什么。将函数的返回值直接分配给将要使用它的对象,显式地指示正在进行的操作。 编程中有一个派别相信“无变量编程”(几十年前著名的“无Goto编程”论文的风格)。例如,XSL虽然有“变量”,但它们在单个范围内的初始分配之后是不可变的。有人说,这有助于确保没有意外的副作用。 |
![]() |
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
![]() |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
![]() |
Prince · 复制大型文件需要更多时间 2 年前 |
![]() |
Sagar · 为什么在循环之外声明变量会更快? 2 年前 |
![]() |
seco · 如何在不挂起页面的情况下加载JS 2 年前 |