函数表达式与函数声明:返回值

Nat*_*lie 5 javascript

在Udacity课程中,函数表达式和声明之间的区别解释如下:

函数声明定义函数,不需要为其分配变量.它只是声明一个函数,并且本身不返回值......另一方面,函数表达式确实返回一个值.

这令人困惑; 据我所知,当函数表达式和函数声明都包含return语句时,都返回一个值.

如果我理解正确,返回值的差异在于函数表达式中,如果在函数的第一次调用中更改了值,则在后续调用中将保留更新的值 - 而如果函数未存储在变量中,当函数执行完毕时,将删除返回值.我错过了什么,并且从课程中的陈述准确吗?

注意:我的问题与标记为重复的问题不同.在那个问题中,它询问使用一个在另一个之上的原因是什么,但问题中没有提到或在答案中解释了返回值.

Ber*_*rgi 2

另一方面,函数表达式确实返回一个值。

这很令人困惑

确实是的。他们实际上的意思是函数表达式计算为(函数)值- 与声明相反,声明不是表达式而是语句,并且不计算任何内容。它与函数可能从调用返回的值无关。