You may see undefined
errors in the console when you try to call a function that is not defined in JavaScript code. JavaScript throws this error and stops running the code.
In this article, I will teach you how to check whether a function exists. This way you avoid any possible mistakes. This is a useful technique for seeing if a specific library or API is available in the client you're running your software on.
JavaScript has a few different ways to see if a function exists. I'll show you a few.
if
conditional statementOne way to check if a function is defined is to test it using an if
statement. The trick is to test the function as a method of the window
object.
So, if you want to test aFunctionName
, just use:
if (window.aFunctionName) { // ... }
If the function is defined, the code in the brackets will be executed. In contrast, if you just test a function without using a window object, such as if(aFunctionName)
, JavaScript will throw a ReferenceError
if the function does not exist.
Let us consider the following example that checks the existence of two functions: one exists and the other does not.
// 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'); }
The above code snippet will output:
the exists() function exists the doesntExist() does not exist
This works great for our example, but one problem with this approach is that we don't check whether the named object is actually a function. In fact, any variable with the same name will fool our test into thinking the function is defined.
typeof
OperatorAlternatively, we can use the typeof
operator. This operator will check whether the name of the declared function exists and whether it is a function and not some other type of object or primitive.
if (typeof nameOfFunction === 'function') { nameOfFunction(); }
In the above example, we test whether nameOfFunction
exists and run it if it exists.
Try...catch
blocktry…catch
block handles errors that may occur within the block. We will use this method to handle undefined
errors that JavaScript throws when we call an undefined function.
try...catch
How the statement worksWe run the function inside a try
block. If it does not exist, an exception is thrown and handled by the catch
block.
This is an example:
try { testFunction(); } catch(err) { console.log(err); }
If testFunction
is not defined, the following message will be output to the console.
ReferenceError: testFunction is not defined
This is also what we see without the try...catch
block, but in this case our code will continue to run below the catch block.
This article describes the three main ways to check whether a function exists in JavaScript before calling it. These are the use of the if
conditional statement, the use of the typeof
operator, and finally the try...catch
statement. I also use examples to explain how JavaScript implements these methods to check if a function exists. I hope this concept is clearer to you now!
The above is the detailed content of Check if function exists in Java script. For more information, please follow other related articles on the PHP Chinese website!