JavaScript 在一行上定义并返回一个变量

JavaScript define and return a variable on one line

本文关键字:返回 变量 一个 一行 JavaScript 定义      更新时间:2023-09-26

在 JavaScript 中,如果我想返回一个变量,但又不想修改它或将其泄漏到全局范围内,我可以像这样在一行上定义并返回它吗?

return var Foo = 'bar'

但是,我认为我在任何地方都没有看到过这个,我更常看到这个:

var Foo = 'bar'
return Foo

第一个不那么多余,但这是不好的做法吗?

好吧,你肯定需要在你想要的范围内声明变量。 然后,您可以设置该值,并在一行中返回它:

var Foo; // Declares Foo in this scope, though this expression has no L-Value
return (Foo = 'bar'); // Sets Foo to 'bar' and returns the value of Foo

不过,你为什么要这样做是值得怀疑的。 理想情况下,Foo将在某个父作用域中的其他位置声明。 或者,您将返回一个包含 Foo 值的新函数

我不明白你为什么要这样做,因为一旦你return你就超出了范围

只是做

return 'bar';

如果不了解您要做什么,就很难提供有用的答案,但是:

return var Foo = 'bar'

不是有效的 JavaScript,所以你当然不能那样做。

我同意你的第二个例子是多余的 - 如果你只在返回它时引用它,那么在函数中声明一个变量是没有意义的。消除冗余的方法是根本不声明变量:

function exampleFunction() {
    return 'bar';
}