Check if a Javascript Function Exists or Is Defined


It’s always frustrating when you get an error trying to call a function that hasn’t been defined but there’s an easy way  to prevent this. To check if a Javascript function exists before calling it, try this:

if (typeof yourFunctionName == 'function') { yourFunctionName(); }
Related Links
You may also be interested in:

Also, check out Publishing with WordPress, it’s full of useful and timely WordPress guides,  or follow me on Twitter @reifman.

Bloggers: WP Engine has increased their referral payments to $200 each! Try out their WordPress hosting.

  • Tommy

    Finally! I’ve been looking for way too long for just this easy a solution! Thank you very very much!!!!

  • Bob

    terrific, you are on 1st place in google for javascript check it function exists, thank you

  • Darin Reid

    Hey neighbor, imagine my surprise when I googled this tonight. See you at coffee!

    • jeffreifman

      HA! We should cowork :) Email me your email again … as I can’t seem to find it.

  • MattC

    very nice. Simple an to the point – just what I was looking for. :)

  • Neil Young

    Great stuff, worked a treat – thanks for this!

  • Lutz Zimmmermann

    Great stuff, thanks a million!

  • Ken

    Jason Bunting’s answer on Stackoverflow is probably the better way to do this.

  • Nicola


  • Rolly Schicker

    Sounds like y’all are real happy with the solution…now for us dummies….where do you enter(type) all that good stuff?

  • Nikola

    Man you have been a great help, thank you for this trick

  • ray

    great solution thx!

  • Mark Giblin

    Try this.

    isFunc = function(func){ return typeof window[func] === “function”;}

    much better.

    returns true or false, func is the string name

    var x = isFunc(“myFunc”);

    x will be true or false depending on if myFunc is real or not.

  • Erwinus

    The solution here will break your script if variable or function not exists so your solution doesn’t make sense at all. Use .yourFunctionName instead, it’s safer especially for older browsers. In this case this is the window object, window.yourFunctionName. All global functions will be attached to the window object. Cheers!

  • PatrickMartin

    Very useful! Got me out of a jam when I was calling a Javascript function from JavaFX. The target Javascript may or may not have implemented the hook and was dumping harmless stack traces. I started to get lazy and bury the exception and add a TODO to come back and address it. However, your solution worked great. Buried exceptions are one of the worst anti-patterns around.