Die folgende JS Code verhält sich seltsam:Warum behalten Parameter ihren Wert nicht außerhalb einer Funktion?
var c = 0;
var a = 0;
myTest(8, 5);
function myTest(a,b) {
console.log(a);
a++;
c++;
console.log(a);
return a;
}
console.log(a);
console.log(c);
https://jsfiddle.net/hwns1v4L/
Wenn ich aus der Funktion der "a" Parameter nehmen, "ein" wird um 1 erhöht und die dritte Konsole Log-Returns "a" als 1. Völlig normal. Aber wenn ich das "a" als Parameter in der myTest-Funktion (wie im obigen Code) behalte, erhält es einen Wert von 8, in Schritten von 1 bis 9, und das dritte Konsolenprotokoll gibt eine Null zurück.
Was ist die Erklärung für dieses seltsame Verhalten? Es tut mir leid, wenn dies in einem anderen Thread erklärt wird; Ich bin zu neu für JS, um wirklich gute Google-Abfragen zu erstellen oder erweiterte Antworten zu verstehen.
JavaScript ist nach Wert, wie die meisten anderen Sprachen. Dieses "seltsame" Verhalten ist sehr häufig. https://en.m.wikipedia.org/wiki/Evaluation_strategy –