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

alt*_*alt 1 javascript

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

return var Foo = 'bar'
Run Code Online (Sandbox Code Playgroud)

但是,我不认为我在任何地方都看到过此消息,而更常见的情况是:

var Foo = 'bar'
return Foo
Run Code Online (Sandbox Code Playgroud)

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

Mik*_*sen 5

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

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
Run Code Online (Sandbox Code Playgroud)

但是为什么要这样做却令人怀疑。理想情况下,Foo将在某些父范围内的其他位置声明。或者,您将返回一个包含 Foo值的新函数。