Möglicherweise haben Sie den Fehler undefined
in der Konsole gesehen, als Sie versuchten, eine Funktion aufzurufen, die nicht in Ihrem JavaScript-Code definiert ist. JavaScript löst diesen Fehler aus und beendet die Ausführung des Codes.
In diesem Artikel werde ich Ihnen beibringen, wie Sie überprüfen können, ob eine Funktion vorhanden ist. So vermeiden Sie mögliche Fehler. Dies ist eine nützliche Technik, um festzustellen, ob eine bestimmte Bibliothek oder API in dem Client verfügbar ist, auf dem Sie Ihre Software ausführen.
JavaScript bietet verschiedene Möglichkeiten, um festzustellen, ob eine Funktion vorhanden ist. Ich zeige Ihnen ein paar.
if
bedingte AnweisungenEine Möglichkeit zu überprüfen, ob eine Funktion definiert ist, besteht darin, sie mit der if
语句来测试它。诀窍是将该函数作为 window
-Anweisung zu testen. Der Trick besteht darin, die Funktion als Methode des window
-Objekts zu testen.
Wenn Sie also testen möchten aFunctionName
, verwenden Sie einfach:
if (window.aFunctionName) { // ... }
Wenn die Funktion definiert ist, wird der Code in den Klammern ausgeführt. Im Gegenteil, wenn Sie die Funktion einfach testen, ohne das Fensterobjekt zu verwenden, wie if(aFunctionName)
,则如果函数不存在,JavaScript 将抛出 ReferenceErorr
.
Betrachten wir das folgende Beispiel, das die Existenz zweier Funktionen prüft: eine existiert und die andere nicht.
// Testing a function that exists function exists() { // ... } if (window.exists) { console.log('the exists() function exists'); } else{ console.log('the exists() function does not exist'); } if(window.doesntExist) { console.log('the doesntExist() function exists'); } else{ console.log('the doesntExist() function does not exist'); }
Das obige Code-Snippet gibt Folgendes aus:
the exists() function exists the doesntExist() does not exist
Das funktioniert in unserem Beispiel hervorragend, aber ein Problem bei diesem Ansatz besteht darin, dass wir nicht prüfen, ob das benannte Objekt tatsächlich eine Funktion ist. Tatsächlich täuscht jede Variable mit demselben Namen unseren Test vor, die Funktion sei definiert.
typeof
BetreiberAlternativ können wir den typeof
-Operator verwenden. Dieser Operator prüft, ob der Name der deklarierten Funktion existiert und ob es sich um eine Funktion und nicht um einen anderen Objekttyp oder Primitivtyp handelt.
if (typeof nameOfFunction === 'function') { nameOfFunction(); }
Im obigen Beispiel testen wir, ob nameOfFunction
vorhanden ist, und führen es aus, wenn dies der Fall ist.
尝试...catch
Blöcketry…catch
-Block behandelt Fehler, die innerhalb des Blocks auftreten können. Wir werden diese Methode verwenden, um die try…catch
块处理该块内可能发生的错误。我们将使用此方法来处理当我们调用未定义的函数时 JavaScript 会抛出的 undefined
Fehler zu behandeln, die JavaScript auslöst, wenn wir eine undefinierte Funktion aufrufen.
try...catch
Wie Aussagen funktionierenWir kümmern uns darum im try
块内运行该函数。如果不存在,则会抛出异常,并由 catch
-Block.
Hier ist ein Beispiel:
try { testFunction(); } catch(err) { console.log(err); }
Wenn testFunction
undefiniert ist, wird die folgende Meldung an die Konsole ausgegeben.
ReferenceError: testFunction is not defined
Das sehen wir auch ohne den try...catch
-Block, aber in diesem Fall wird unser Code unterhalb des Catch-Blocks weiter ausgeführt.
In diesem Artikel werden die drei wichtigsten Methoden erläutert, mit denen Sie vor dem Aufruf prüfen können, ob eine Funktion in JavaScript vorhanden ist. Dies sind die Verwendung der bedingten if
条件语句的使用、typeof
运算符的使用,最后是 try...catch
-Anweisung, die Verwendung des
Das obige ist der detaillierte Inhalt vonÜberprüfen Sie, ob die Funktion im Java-Skript vorhanden ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!