ホームページ > 記事 > ウェブフロントエンド > Javaスクリプトに関数が存在するかどうかを確認する
JavaScript コードで定義されていない関数を呼び出そうとすると、コンソールに 未定義
エラーが表示される場合があります。 JavaScript はこのエラーをスローし、コードの実行を停止します。
この記事では、関数が存在するかどうかを確認する方法を説明します。こうすることで、起こり得る間違いを回避できます。これは、ソフトウェアを実行しているクライアントで特定のライブラリまたは API が利用可能かどうかを確認するのに便利なテクニックです。
JavaScript には、関数が存在するかどうかを確認するいくつかの方法があります。いくつか紹介します。
if
条件文を使用します関数が定義されているかどうかを確認する 1 つの方法は、if
ステートメントを使用してテストすることです。重要なのは、関数を window
オブジェクトのメソッドとしてテストすることです。
したがって、aFunctionName
をテストしたい場合は、次のようにしてください:
関数が定義されている場合、括弧内のコードが実行されます。対照的に、if(aFunctionName)
など、ウィンドウ オブジェクトを使用せずに関数をテストするだけの場合、関数が存在しない場合、JavaScript は ReferenceError
をスローします。
2 つの関数の存在を確認する次の例を考えてみましょう。1 つは存在し、もう 1 つは存在しません。
リーリー上記のコード スニペットは次のように出力します:
リーリーこれはこの例ではうまく機能しますが、このアプローチの 1 つの問題は、名前付きオブジェクトが実際に関数であるかどうかを確認しないことです。実際、同じ名前の変数はすべて、テストを騙して関数が定義されていると認識させます。
typeof
演算子あるいは、typeof
演算子を使用することもできます。この演算子は、宣言された関数の名前が存在するかどうか、およびそれが関数であり、他の種類のオブジェクトやプリミティブではないかどうかをチェックします。
上記の例では、nameOfFunction
が存在するかどうかをテストし、存在する場合はそれを実行します。
ブロックを使用します
try…catch ブロックは、ブロック内で発生する可能性のあるエラーを処理します。このメソッドを使用して、未定義の関数を呼び出したときに JavaScript がスローする
未定義 エラーを処理します。
ステートメントの仕組み
try ブロック内で実行します。存在しない場合は、例外がスローされ、
catch ブロックによって処理されます。
リーリー
testFunction が定義されていない場合、次のメッセージがコンソールに出力されます。
リーリー
try...catch ブロックがない場合にも見られるものですが、この場合、コードは catch ブロックの下で引き続き実行されます。
###結論は###
typeof 演算子の使用、そして最後に
try...catch ステートメントです。また、関数が存在するかどうかを確認するために JavaScript がこれらのメソッドを実装する方法についても例を使用して説明します。この概念がより明確になったと思います。
以上がJavaスクリプトに関数が存在するかどうかを確認するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。