Erstens verstehe ich Funktionsdeklarationen und Funktionsausdrücke nicht sehr gründlich. Ich verwende grundsätzlich Funktionsdeklarationen und weiß, dass sie mit einem Präfix versehen werden. Meiner Meinung nach weiß ich nicht, ob der Funktionsausdruck einen Funktionsnamen hat? Weil ich ihn nicht oft verwendet habe. Heute habe ich gesehen, wie man einer Variablen eine Funktion zuweist, und habe festgestellt, dass es dasselbe zu sein scheint wie ein Funktionsausdruck. Ich hoffe, jemand kann es beantworten, danke.
var s = function square (x){
return x*x;
}
console.log(square(4));
console.log(s(4))
Die obige Frage 1, die folgende ist Frage 2, warum meldet der obige Code den Fehler „Quadrat ist nicht definiert“, während der folgende Code normal ausgegeben wird, weil der obige Code zu einem Funktionsausdruck gehört, also nicht Quadrat(4) unterstützen, oder? Während ich das schreibe, möchte ich plötzlich fragen, ob der Funktionsausdruck in derselben Zeile vor der Funktionsfunktion steht und die Zuweisung der Funktion zu einer Variablen nur auf der Funktionsdeklaration basiert, beginnend mit a neue Zeile <var xx = Funktionsname>, ist das so? Bitte helfen Sie, danke
function square (x){
return x*x;
}
var s = square;
console.log(square(4));
console.log(s(4))
关于问题二,
表达式,就是直接创建一个函数作变量,外部这个函数不存在。
而函数赋予变量,则是先有函数,再有变量。
于是有了问题一的答案,s 本身是函数,外部是不存在这个函数的,于是报错不存在。
另外,应该是写成:
两个问题同个答案。函数表达式的函数名是只读的,只能在这个函数内部引用,一般用作递归。