What precisely is a function value?
<p>In JavaScript (ECMAScript 5), functions are valued (they are told to be "first-class functions").</p>

<p>This allows us to use them as expressions (an expression is everything which produces a value, and can contain other expressions : <code>var exp0 = (exp1) + exp2 - exp3.function();</code> is a grammar-correct statement).</p>

<p>In the code above, there are 8 expressions : exp0, exp1, (exp1), exp2, (exp1) + exp2, exp3, exp3.function() and (exp1) + exp2 - exp3.function().</p>

<hr>

<p><strong>Because functions can be used as expressions, the following code is correct :</strong></p>

<p><code>var my_function_0 = function a() {}</code> is a named function expression.</p>

<p><strong>The following code is also correct :</strong></p>

<p><code>var my_function_1 = function()</code>{}` is an anonymous function expression.</p>

<p><strong>Both are valued, both are values.</strong></p>

<hr>

<p><strong>Now, consider the code below :</strong></p>

<p><code>function requiredIdentifier() {}</code></p>

<p>It is NOT a "named or anonymous function expression", but a function declaration.</p>

<hr>

<p><strong>My question is :</strong> </p>

<p><em>Does a declared function have/produce a value ?</em></p>

<p><strong>This question is equivalent to this one :</strong> <em>Is a declared function an expression ?</em> (even if it's not a named or anonymous function expression ?!)</p>