Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript变量什么效率较低_Javascript_Performance_Variables_Variable Assignment_Inline - Fatal编程技术网

Javascript变量什么效率较低

Javascript变量什么效率较低,javascript,performance,variables,variable-assignment,inline,Javascript,Performance,Variables,Variable Assignment,Inline,我目前正在学习Javascript。我想知道以下两者之间是否有区别: var系数=0.1; var限值=10; var x; 变量y; x=极限*系数; y=极限*系数; //或 var限值=10; var x; 变量y; x=极限*0.1; y=极限*0.1我建议您继续使用第一个示例,但要进行修改。变量用于保存动态数据,最好将0.1保存在变量中,这样您可以根据需要随时间更改它 // have a function so that you don't repeat the code funct

我目前正在学习Javascript。我想知道以下两者之间是否有区别:

var系数=0.1;
var限值=10;
var x;
变量y;
x=极限*系数;
y=极限*系数;
//或
var限值=10;
var x;
变量y;
x=极限*0.1;

y=极限*0.1我建议您继续使用第一个示例,但要进行修改。变量用于保存动态数据,最好将
0.1
保存在变量中,这样您可以根据需要随时间更改它

// have a function so that you don't repeat the code
function getFactor(factor, limit) {
  return limit * factor;
}

//declare the variables and set the required default values
var factor = 0.1,
    limit = 10,
    x, y;

//assign getFactor to x and y variables
x = y = getFactor(factor, limit);

我建议您继续使用第一个示例,但要进行修改。变量用于保存动态数据,最好将
0.1
保存在变量中,这样您可以根据需要随时间更改它

// have a function so that you don't repeat the code
function getFactor(factor, limit) {
  return limit * factor;
}

//declare the variables and set the required default values
var factor = 0.1,
    limit = 10,
    x, y;

//assign getFactor to x and y variables
x = y = getFactor(factor, limit);

有一个非常小的差别。当您在两次乘法中使用
factor
时,JavaScript引擎每次都必须在当前词汇环境对象中查找
factor
的值——理论上,无论如何;如果JavaScript引擎选择代码进行优化,那么优化很可能会消除这种情况


但不管怎样:当您需要担心性能问题时,请担心性能问题。相反,要专注于可读性和可维护性。如果要将
x
y
乘以相同的值,则将该值放入某个值中(一个
var
,或者一个
const
,使用ES2015+),并在这两个位置使用它。

有一个非常小的差异。当您在两次乘法中使用
factor
时,JavaScript引擎每次都必须在当前词汇环境对象中查找
factor
的值——理论上,无论如何;如果JavaScript引擎选择代码进行优化,那么优化很可能会消除这种情况



但不管怎样:当您需要担心性能问题时,请担心性能问题。相反,要专注于可读性和可维护性。如果要将
x
y
乘以相同的值,则将该值放入某个值中(a
var
,或者可能是ES2015+的
const
,并在两个位置使用它。

在第二个示例中,您没有声明“0.1”第二次和第二次会更好。不要从优化开始。如果将0.1更改为0.2,则需要在所有使用它的地方更新它。所以第一个版本更好。内联函数、变量总是性能更好,但可重用性较差。不,没有区别。JavaScript引擎应该优化这两个版本。此外,如果有任何差异,可以安全地忽略。只需选择可读性更强的一个。在第二个示例中,您没有两次声明“0.1”,第二个声明会更有效。不要从优化开始。如果您将0.1更改为0.2,则需要在所有使用它的地方更新它。所以第一个版本更好。内联函数、变量总是性能更好,但可重用性较差。不,没有区别。JavaScript引擎应该优化这两个版本。此外,如果有任何差异,可以安全地忽略。只需选择一个更具可读性的。问题必须已经更新,两个示例都使用
var
@T.J.Crowder zzzz,很遗憾,是的,谢谢。。。将修改我的答案。@Mr.Alien我的错误,但无论如何感谢您的回答!问题必须已更新,两个示例都使用
var
@T.J.Crowder zzzz,很遗憾,是的,谢谢。。。将修改我的答案。@Mr.Alien我的错误,但无论如何感谢您的回答!我一直在想(尽管我知道这有很小的区别),但是对于js引擎来说,获得硬编码的值是否比之前在变量中声明的值更难呢?我的意思是,我总是使用可变的方式,因为对我来说,它的痛苦更小,而且我不太在乎翻译会遭受多大的痛苦,但是,你的答案并不能确切地告诉我这个微小的差异是如何产生的。声明的变量更容易清理是有道理的,但是避免声明某些东西也可以避免清理它。@Kaido:我不知道解析器解析
0.1
因子
相比,要多做多少工作。我怀疑有什么真正的区别。但是代码在加载时只被解析一次,解析后的结果要么被解释,要么被编译。因此,如果存在解析差异,那么这种差异就无关紧要了,而符号查找则可以。(就在几个月前,我会说几乎没有JavaScript引擎再使用解释器了,但最近V8回到了解释器——字节码级别,就像Java一样——用于很少使用的代码。)@T.J Crowder我明白了,我真的没想到它会被查找两次。。但是第一个例子更容易理解,所以我会考虑RediBurTy。谢谢回复@萨米德:好吧,如果有任何优化应用,它可能不会是。:-)PS:(当然,如果我有很多乘法运算,第一个乘法运算对我的手指的伤害会小一些。我一直在想(尽管我知道它有很小的差别),但是对于js引擎来说,获得硬编码的值比之前在变量中声明的值更难吗?我的意思是,我总是使用变量的方式,因为对我来说,它不那么痛苦,而且我也不太关心解释器会遭受什么样的痛苦,但是,你的答案并不能确切地告诉我们这个微小的差异是以什么方式发生的。这可能是有意义的ed变量更容易清理,但避免声明某些东西也可以避免清理它,这也是有道理的。@Kaido:我不知道解析器解析
0.1
vs.
factor
需要做多少工作。我怀疑这两者之间有什么真正的区别。但代码在加载时只解析一次,在加载之后解析的结果要么被解释,要么被编译