What's the difference between (typeof variable === "function") and jQuery.isFunction()?

Aust picture Aust · Aug 30, 2012 · Viewed 18.4k times · Source

I have always used (typeof variable === "function") and I stumbled across jQuery.isFunction() and I was wondering:

  1. What is the difference between the typeof method and jQuery's method? And not only what the difference is, but
  2. When is it appropriate to use the typeof method and when is it appropriate to use jQuery's method?

Answer

Lusitanian picture Lusitanian · Aug 30, 2012

There is almost no difference, other than that using jQuery is slightly slower. See the source code:

isFunction: function( obj ) {
    return jQuery.type(obj) === "function";
},

which calls a function which calls another function to determine the exact same thing as what you showed :P

There is literally no advantage to jQuery in this case [or for that manner, 90% of the use-cases of the library]. Look into Vanilla-JS and check out some of its features :P

TLDR: Don't use jQuery for this...or anything.

UPDATE

Here's a benchmark showing you that Vanilla JS is roughly 93% faster than jQuery: http://jsperf.com/jquery-isfunction-vs-vanilla-is-function.