Die überprüfung für die übergebenen Parameter mit null - JavaScript

Nehmen Sie ein Beispiel der Funktion hier:

function a(b){
    console.log(b != null ? 1 : 2);
}

Dass code, der funktioniert gut, durch drucken 1 übergeben Sie einen parameter, und 2, wenn Sie nicht.

Jedoch, JSLint gibt mir eine Warnung, erzählte mir, um stattdessen die strikte Gleichheit, ich.e !==. Unabhängig davon, ob ein parameter übergeben wird oder nicht, wird die Funktion drucken 1 wenn Sie !==.

Also meine Frage ist, was ist der beste Weg, um zu überprüfen, ob ein parameter übergeben wurde? Ich will nicht zu verwenden arguments.length oder tatsächlich verwenden Sie die arguments Objekt überhaupt.

Ich habe versucht mit diesem:

function a(b){
    console.log(typeof(b) !== "undefined" ? 1 : 2);
}

^ , das schien zu funktionieren, aber ist es die beste Methode?

  • Wenn Sie pass undefined Sie erhalten dann eine falsch-negative. arguments.length (oder Varianten) ist der einzige Weg, um zu sehen, ob das argument übergeben wurde.
  • Wenn es nicht die Absicht, die Funktion explizit arbeiten mit undefinierten Wert, dies sollte okay sein imo. Es sind nicht die Funktionen die Verantwortung zu fangen jeden userfault möglich.
  • Wenn Sie wirklich brauchen, zu wissen, ob ein argument übergeben wurde, dann ist es nicht ok. Wenn Sie wollen einfach nur wissen, wenn das argument leer ist oder was auch immer, dann != null !== undefined und so weiter sind alle nur so zerbrechlich und gut , es gibt keine kugelsichere in die. Lieber != null zu prüfen undefined und null zur gleichen Zeit.
  • Es spielt keine Rolle, ob ein argument übergeben wird, mit dem Wert undefined oder kein argument, wenn die Funktion akzeptiert keine undefinierten Werte. null jedoch darauf hin, dass es einen parameter übergeben, da es unterscheidet sich von undefined das ist der Fall, wenn kein Parameter übergeben wird. Also ich würde nicht überprüfen Sie mit !=null
  • Das ist, warum ich sagte, wenn Sie wirklich brauchen, zu wissen 😛 natürlich ist es nicht normal, dass zu wissen.
InformationsquelleAutor Keir Simmons | 2012-08-12
Schreibe einen Kommentar