函数声明的执行是表达式语句吗?如果是这样,我的理由是为什么它是正确的吗


function f() {
}
f();

f()是一个表达式语句吗?

  1. 我知道一个语句确实需要一个操作,或者至少成功地将;附加到它上面。f()是一个语句吗,因为它正在执行的"操作"是一个函数?或者它正在进行的"操作"是读取f的值,即undefined

  2. 我理解一个表达式需要求值为一个值。f()是否是表达式语句,因为它返回undefined

函数声明的执行是表达式语句吗?

是,但请注意,这是一个表达式是一个语句。

就本质量保证而言;从概念上讲:

function foo() { }

与此相同:

var foo = function() { }

它产生一个表示function foo的值,这就是为什么你也可以这样做:

var foo;
var bar = ( foo = function() { console.log( 'foo' ); } );
foo(); // This call will succeed
bar(); // Ditto.

这个:

function higherOrderFunction( func ) {
func();
}
higherOrderFunction( function foo() {
console.log( 'foo' );
} );
// or:
higherOrderFunction( function() {
console.log( 'foo' );
} );

(概念上(与以下内容相同:

function higherOrderFunction( func ) {
func();
}
function foo() {
console.log( 'foo' );
}
higherOrderFunction( foo );

最新更新