Heim  >  Artikel  >  Web-Frontend  >  Überprüfen Sie, ob die Funktion im Java-Skript vorhanden ist

Überprüfen Sie, ob die Funktion im Java-Skript vorhanden ist

王林
王林Original
2023-09-04 22:41:06596Durchsuche

检查 Java 脚本中函数是否存在

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.

Verwenden Sie if bedingte Anweisungen

Eine 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 Betreiber

Alternativ 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.

Verwenden Sie 尝试...catch Blöcke

try…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 funktionieren

Wir 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.

Fazit

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

-Operators und schließlich die 🎜-Anweisung. Außerdem erkläre ich anhand von Beispielen, wie JavaScript diese Methoden implementiert, um zu prüfen, ob eine Funktion vorhanden ist. Ich hoffe, dass Ihnen dieses Konzept jetzt klarer ist! 🎜

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn