Was bedeutet ein Unterstrich im Funktionsparameter von Javascript?

Lesezeit: 3 Minuten

Benutzer-Avatar
Azhar

Ich habe den Code einer der in Javascript geschriebenen Diagrammbibliotheken durchgesehen, in denen ich gesehen habe, dass Unterstriche (_) als Funktionsparameter. Was bedeutet das?

chart.x = function(_) {
  if (!arguments.length) return lines.x;
  lines.x(_);
  lines2.x(_);
  return chart;
};

Kann jemand dies bitte aktualisieren … Danke.

  • also @GabyakaG.Petrioli, wenn Sie diese Funktion mit einem beliebigen Parameter aufrufen, unabhängig von Typ oder Nr. von Parametern..es wird diese Funktion aufrufen?

    – Azhar

    24. Dezember 2014 um 12:42 Uhr

  • Wenn Sie in der spezifischen Funktion keine Parameter übergeben, wird sie zurückgegeben lines.x sofort, wenn Sie mehr als einen übergeben, wird nur der erste verwendet und an ihn weitergegeben lines.x und lines2.x und schließlich die zurückgeben chart.

    – Gabriele Petrioli

    24. Dezember 2014 um 12:44 Uhr

Benutzer-Avatar
sagar43

Das Unterstrich-Symbol _ ist ein gültiger Bezeichner in JavaScript und wird in Ihrem Beispiel als Funktionsparameter verwendet.

Ein einzelner Unterstrich ist eine Konvention, die von einigen Javascript-Programmierern verwendet wird, um anderen Programmierern anzuzeigen, dass sie “diese Bindung/diesen Parameter ignorieren” sollen. Da JavaScript keine Überprüfung der Parameteranzahl durchführt, hätte der Parameter vollständig weggelassen werden können.

Dieses Symbol wird oft (wiederum konventionell) in Verbindung mit Fettpfeilfunktionen verwendet, um sie noch prägnanter und lesbarer zu machen, wie hier:

const fun = _ => console.log('Hello, World!')
fun()

In diesem Fall benötigt die Funktion keine Parameter, um ausgeführt zu werden, daher hat der Entwickler den Unterstrich als Konvention verwendet, um dies anzuzeigen. Dasselbe könnte man auch so schreiben:

const fun = () => console.log('Hello, World!')
fun()

Der Unterschied besteht darin, dass die zweite Version eine Funktion ohne Parameter ist, die erste Version jedoch einen Parameter namens _ hat, der ignoriert wird. Diese sind jedoch anders und die zweite Version ist sicherer, wenn auch etwas ausführlicher (1 zusätzliches Zeichen).

Betrachten Sie auch einen Fall wie

arr.forEach(function (_, i) {..})

Wo _ gibt an, dass der erste Parameter nicht verwendet werden soll.

Die Verwendung solcher Unterstriche kann sehr verwirrend werden, wenn die beliebten Lodash- oder Unterstrichbibliotheken verwendet werden.

  • Wenn es ganz weggelassen würde, hätte er nichts, wozu er übergehen könnte lines.x() und lines2.x(_).

    Benutzer663031

    24. Dezember 2014 um 12:59 Uhr

  • Um mein Verständnis zu bestätigen, vorbei _ ist in diesem Fall gleichbedeutend mit Bestehen nullund _ dient nur der Ästhetik/Lesbarkeit?

    – Markus Jackson

    10. Dezember 2018 um 0:12 Uhr

  • @MarkJackson Das _ wird immer noch einen Wert haben. Sie können dies testen, indem Sie eine Funktion mit einem Parameter deklarieren _ das diesen Parameter protokolliert, und Sie werden sehen, dass es protokolliert, was auch immer übergeben wurde

    – Felipe

    20. Mai 2019 um 17:01 Uhr

  • @MarkJackson: Nein, _ ist nichts Besonderes; Es ist eine gültige Kennung in JS, genau wie x oder foo. Diese Definitionen sind äquivalent: a) function f(x) { return x; }b) function f(_) { return _; }. Ich würde sagen, die Antwort von @sagar43 ist falsch, weil _ ist in der Tat im Körper von verwendet chart.xalso das Weglassen des Parameters (chart.x = function() { ... }) würde die Semantik der Funktion ändern.

    – Simon Alling

    26. August 2019 um 13:55 Uhr


  • @sagar43 Könnten Sie bitte erläutern, wie “die zweite Version sicherer ist”?

    – Frager

    23. Dezember 2020 um 17:51 Uhr

_ in Fett Pfeil Funktion heißt als Wegwerfvariable. Das bedeutet, dass wir eigentlich eine Variable erstellen, sie aber einfach ignorieren. Heutzutage verwenden mehr Entwickler dies als syntaktischen Zucker oder als Abkürzung beim Schreiben von Code, da es einfach und ein Zeichen weniger ist, den Code zu schreiben.

Anstatt _ zu verwenden, können Sie andere Variablen wie temp, x usw. verwenden

zum Beispiel:

() => console.log('Hello World')



_ => console.log('Hello World')




x => console.log('Hello World')

Aber ich persönlich ziehe es vor, den Typ () über die Wegwerfvariable zu verwenden, wenn keine Argumente benötigt werden.

Sehen Sie sich den folgenden Code an, dann werden Sie ihn besser verstehen.

_ als Argument,

  f = _=> {
    return _ + 2 ;
}

f(3) gibt 5 zurück

Zum besseren Verständnis siehe wes bos

1015380cookie-checkWas bedeutet ein Unterstrich im Funktionsparameter von Javascript?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy