Javascript 变量声明是一个语句,但为什么函数表达式不是?

Javascript 变量声明是一个语句,但为什么函数表达式不是?,javascript,function,expression,variable-declaration,function-expression,Javascript,Function,Expression,Variable Declaration,Function Expression,我无法理解陈述和表达之间的区别。我认为总是缺少一些东西,因为我不能很好地理解表达式计算为值的含义。 例如,我们说变量声明是一个语句(让x=2;),因为它没有给我们返回值,所以为什么我们说函数是这样的(让foo=function(){};)表达式不是一个语句,而它也没有给我们返回值?let foo=function(){}不是一个表达式(函数(){})是一个表达式让foo=function(){}和函数foo(){}是声明。那么什么是(let foo)only或(let x)only是一个语句或表

我无法理解陈述和表达之间的区别。我认为总是缺少一些东西,因为我不能很好地理解表达式计算为值的含义。
例如,我们说变量声明是一个语句(让x=2;),因为它没有给我们返回值,所以为什么我们说函数是这样的(让foo=function(){};)表达式不是一个语句,而它也没有给我们返回值?

let foo=function(){}不是一个表达式<代码>(函数(){})
是一个表达式<代码>让foo=function(){}和
函数foo(){}
是声明。那么什么是(let foo)only或(let x)only是一个语句或表达式?另外,您的意思是声明既不是语句也不是表达式?所有表达式也是语句。JS代码由声明和语句列表组成。然而,该列表称为“语句列表”。这一切都在报告中解释过了<代码>让富是一种声明,
函数foo(){}
也是一种声明
if(foo==123){}
是一条语句:一条
if
语句<代码>foo=123是一个语句:表达式语句(其中
foo=123
是表达式 — 更准确地说是赋值表达式)。