Javascript 返回全局范围内存在的变量的最佳实践?

Javascript 返回全局范围内存在的变量的最佳实践?,javascript,Javascript,这里的return语句没有必要吗 var fahrenheit; var celsius; function cToFConvert () { celsius = temperatureInput.value; fahrenheit = celsius * (9/5) +32; console.log(fahrenheit); return fahrenheit; } 即使不使用return语句,也可以获取华氏值。这是否意味着如果变量在全

这里的return语句没有必要吗

var fahrenheit;
var celsius;
function cToFConvert () {
       celsius = temperatureInput.value;
       fahrenheit = celsius * (9/5) +32;
       console.log(fahrenheit);
       return fahrenheit;
}

即使不使用return语句,也可以获取华氏值。这是否意味着如果变量在全局范围内声明,那么使用返回是多余的?

这里我认为是reducant,但我认为这也不是一个有效的实现。相反,您可以:

var cToFConvert = function() {
var celsius = temperatureInput.value;
var farenheit = celsius * (9/5) +32;
console.log(farenheit);
return farenheit;
}
然后

var convertedValue = cToFConvert();

希望这有帮助

这里我认为是还原剂,但我认为这也不是一个有效的实现。相反,您可以:

var cToFConvert = function() {
var celsius = temperatureInput.value;
var farenheit = celsius * (9/5) +32;
console.log(farenheit);
return farenheit;
}
然后

var convertedValue = cToFConvert();

希望这有帮助

我的建议是,避免使用方法之外的变量。将变量作为参数传递给方法并返回结果。如果您仍然希望处理方法外部的变量,那么返回是多余的,因为您已经在修改方法内部的变量

函数CTOFCONVERTNERT{ 返回摄氏度*9/5+32; } 变异系数=123//温度输入值; var farenheit=cToFConvertcelsius;
console.logfarenheit 我的建议是,避免使用方法之外的变量。将变量作为参数传递给方法并返回结果。如果您仍然希望处理方法外部的变量,那么返回是多余的,因为您已经在修改方法内部的变量

函数CTOFCONVERTNERT{ 返回摄氏度*9/5+32; } 变异系数=123//温度输入值; var farenheit=cToFConvertcelsius; console.logfarenheit 不要使用全局变量

您可以删除return语句。 不,没有必要。为什么要使用全局变量,您可以在任何地方访问它,并且可以在任何地方更改它的值

作为替代,你可以这样做

function cToFConvert(celsiusValue){
  return celsiusValue* (9/5) +32;
}
打个电话

var fahrenheit = cToFConvert(temperatureInput.value);
不要使用全局变量

您可以删除return语句。 不,没有必要。为什么要使用全局变量,您可以在任何地方访问它,并且可以在任何地方更改它的值

作为替代,你可以这样做

function cToFConvert(celsiusValue){
  return celsiusValue* (9/5) +32;
}
打个电话

var fahrenheit = cToFConvert(temperatureInput.value);

虽然这是多余的,但两种方法都不同

案例1:您不使用return

在这里,调用方法不需要值

例如,var y=cToFConvert

案例2:使用return时

调用方法需要返回一个值

例如,var y=cToFConvert

y将具有farenheit的值


与这两种情况相比,我个人更喜欢案例1,因为通过查看函数调用,您可以清楚地说出函数返回的内容。正如其他答案中所提到的,除非没有出路,否则不要使用全局变量。

虽然这里是多余的,但两种方法都不同

案例1:您不使用return

在这里,调用方法不需要值

例如,var y=cToFConvert

案例2:使用return时

调用方法需要返回一个值

例如,var y=cToFConvert

y将具有farenheit的值

与这两种情况相比,我个人更喜欢案例1,因为通过查看函数调用,您可以清楚地说出函数返回的内容。正如其他答案中提到的,除非没有出路,否则不要使用全局变量。

var farenheit=0,摄氏度=13//定义在全局空间中 函数cToFConvert{ farenheit=celsius*9/5+32;//使用全局变量,无需返回 } 函数检查{ alertfarenheit;//正在检查全局变量。 } cToFConvert; 查克法伦海特; var farenheit=0,摄氏度=13//定义在全局空间中 函数cToFConvert{ farenheit=celsius*9/5+32;//使用全局变量,无需返回 } 函数检查{ alertfarenheit;//正在检查全局变量。 } cToFConvert; 查克法伦海特; 功能和功能

保持函数纯粹的概念是使用函数而不产生副作用。这意味着,函数应该依赖于自己的参数,并返回仅与参数相关的内容

这意味着函数应该有一些输入和输出

在本例中,对于转换温度,您有一个值Celsius,并希望获得Farenheit中的值。这是一个很好的例子,说明如何编写一个函数,该函数可用于任何目的,并且可以插入到库中而无需更改

它是如何工作的

您可以考虑输入和基于输入的输出

function convertCelsiusToFarenheit(celsius) {
    return celsius * 9 / 5 + 32;
}
现在,您可以将函数与所需的输入一起使用,并将输出存储到变量中

var myFarenheit = convertCelsiusToFarenheit(temperatureInput.value);
或者,如果您想转换一组值,可以将该函数用作回调函数

var myFarenheitData = [-10, 0, 10, 20, 30, 40].map(convertCelsiusToFarenheit);
记住这一点,编写多用途函数就更容易了。

函数和

保持函数纯粹的概念是使用函数而不产生副作用。这意味着,函数应该依赖于自己的参数,并返回仅与参数相关的内容

这意味着函数应该有一些输入和输出。

在本例中,对于转换温度,您有一个值Celsius,并希望获得Farenheit中的值。这是一个很好的例子,说明如何编写一个函数,该函数可用于任何目的,并且可以插入到库中而无需更改

它是如何工作的

您可以考虑输入和基于输入的输出

function convertCelsiusToFarenheit(celsius) {
    return celsius * 9 / 5 + 32;
}
现在,您可以将函数与所需的输入一起使用,并将输出存储到变量中

var myFarenheit = convertCelsiusToFarenheit(temperatureInput.value);
或者,如果您想转换一组值,可以将该函数用作回调函数

var myFarenheitData = [-10, 0, 10, 20, 30, 40].map(convertCelsiusToFarenheit);

考虑到这一点,编写多用途函数更容易。

是的,它是冗余的。但是,最好创建原子方法,只使用自己的作用域。var=farenheit;应该是var farenheit;是的,对不起,没有正确复制代码。编辑@str在编程中它是什么意思?我还没有遇到这个术语。请看Suren Srapyan的答案。是的,它是多余的。但是,最好创建原子方法,只使用自己的作用域。var=farenheit;应该是var farenheit;是的,对不起,没有正确复制代码。编辑@str在编程中它是什么意思?我还没有遇到过这个术语。参见Suren Srapyan的答案。有时,即使对于更改全局状态的函数,返回一个值也会有好处——这就是:validateTempcToFConvertx;即使globals是函数的主要输入/输出也是可能的。为了清晰起见,我甚至建议删除顶部的两行,只需使用var fahrenheit=cToFConv123;。有时,即使对于更改全局状态的函数,返回一个值也是有好处的——这就是:validateTempcToFConvertx;即使globals是函数的主要输入/输出也是可能的。为了清晰起见,我甚至建议删除顶部的两行,只需使用var fahrenheit=cToFConv123;。