函数声明不能​​嵌套在非函数块中

Adi*_*oui 5 javascript functional-programming

我正在阅读有关函数声明与函数表达式的内容,我无法弄清楚以下语句的含义:

函数声明作为独立构造出现,不能嵌套在非函数块中.

有人请用一个例子解释作者的意思,准确地说:"......不能嵌套在非功能块中".

链接是:https://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/

小智 2

我不知道作者的意思是这在物理上是不可能的,或者更多的事情不应该做。根据我的理解,作者的意思是:

var y = true;
if (y) {
    function example() {
    alert('hi');
    return true;
   }
}
Run Code Online (Sandbox Code Playgroud)

这里函数是在条件语句内声明的,这很好,因为x为 true,但如果它为 false,则该函数将永远不会被声明,并且当我们确实想要调用示例函数时,什么也不会发生,因为它从未被声明过。所以应该是

function example() {
"use strict";
return true;
}
var y = true;
if (y) {
    example();
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,如果满足条件,我们仍然调用example函数,但是由于 example 是在条件语句之外定义的,因此无论条件语句如何,我们都可以使用它。这篇文章有更多相关信息。希望这就是你的意思