Sure underscore’s way is more efficient, but the best way to check, when efficiency isn’t an issue, is written on underscore’s page linked by @Paul Rosania.
Inspired by underscore, the final isFunction function is as follows:
function isFunction(functionToCheck) { return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'; }
Note: This solution doesn’t work for async functions, generators or proxied functions. Please see other answers for more up to date solutions.
Related Posts:
- How to use Redirect in the new react-router-dom of Reactjs
- How to fix “Cannot read property ‘addEventListener’ of null” error [duplicate]
- What does [object Object] mean?
- Remove class using jQuery
- How do I check whether a checkbox is checked in jQuery?
- Babel 7 – ReferenceError: regeneratorRuntime is not defined
- How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)
- How can I check for “undefined” in JavaScript?
- How to make history.back() without getting a warning on the browser to reload the page?
- Split string into array
- How can I create a two dimensional array in JavaScript?
- Does JavaScript pass by reference?
- How to add jQuery code into HTML Page
- TypeError: Router.use() requires middleware function but got a Object
- What does jQuery.fn mean?
- “Uncaught TypeError: Cannot read property ‘style’ of null at.. “
- Difference between document.referrer and window.parent.location.href
- jquery SlideToggle effect in upward direction?
- Deleting array elements in JavaScript – delete vs splice
- How can I determine if a variable is ‘undefined’ or ‘null’?
- Cannot find module ‘@angular-devkit/core’
- iFrame onload JavaScript event
- What is the difference between state and props in React?
- Regex for password must contain at least eight characters, at least one number and both lower and uppercase letters and special characters
- OnChange event using React JS for drop down
- Node.js Error: connect ECONNREFUSED
- How to move an element into another element?
- Is there an arraylist in Javascript?
- How to convert JSON object to JavaScript array?
- How can I display a JavaScript object?
- JSLint says “missing radix parameter”
- How to handle ETIMEDOUT error?
- How to move all HTML element children to another parent using JavaScript?
- How to print HTML content on click of a button, but not the page?
- explode string in jquery
- How do I create and read a value from cookie?
- Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of Transition which is inside StrictMode
- Module not found: Error: Can’t resolve ‘fs’ in
- TypeError: $(…).modal is not a function with bootstrap Modal
- How to use jQuery in chrome extension?
- How do I use this JavaScript variable in HTML?
- How to check if a variable is not null?
- How to close current tab in a browser window?
- npm WARN enoent ENOENT: no such file or directory, open ‘C:\Users\Nuwanst\package.json’
- How to change value of object which is inside an array using JavaScript or jQuery?
- How to detect pressing Enter on keyboard using jQuery?
- How to make your Discord Bot always active
- How do I make a discord bot join a voice channel?
- How to display raw JSON data on a HTML page
- Sorting object property by values
- How to make an HTML back link?
- How to fix getImageData() error The canvas has been tainted by cross-origin data?
- How to make fadeOut effect with pure JavaScript
- Moment Js UTC to Local Time
- Get the size of the screen, current web page and browser window
- How to reload/refresh jQuery dataTable?
- How to enable a disabled checkbox dynamically?
- “Cross origin requests are only supported for HTTP.” error when loading a local file
- What is ‘xmlhttp.setRequestHeader();’ and in which situations is it used?
- Write / add data in JSON file using Node.js
- How do I concatenate a string with a variable?
- setTimeout callback argument
- What does wp-embed.min.js do in WordPress 4.4?
- Gutenberg – remove / add blocks with custom script
- conditional layout based on if Innerblocks is not empty
- Gutenberg extend blocks add new class name
- How do I add custom attributes to javascript tags in WordPress?
- Min And Max Date With Date Format In Elementor Form Not Working
- Strange gibberish JavaScript in Editor – site hacked?
- wp_enqueue_script & constants?
- Building a slide down search box in wordpress
- Resolving Javascript errors likely related to Gantry framework
- javascript conflict
- WordPress customizer get control
- How to load JS for specific screen size using wp_enqueue_script?
- I am trying to add current logged in user to my zoho chat
- Where to upload JavaScript file in WordPress
- Video script issue, JavaScript attribute remains ‘undefined’
- Why does a on Comment edit page submit the page?
- Conditional save return on Gutenberg Block
- Can I alter the block editor’s paste text behavior?
- Custom Block – save.js function not saving attributes
- Headless wp with react. How to handle routes?
- Where to paste Google Map Snippet / JavaScript / CSS for WordPress integration
- Issues trying to get an element by id
- TinyMCE Javascript URL Question
- Setting Variable Path to Template Directory inside Script
- Dynamically add Js
- Change background video when scrolling reaches a certain ID
- Contact Form 7 Conditional redirect
- How do i load javascript on a specific custom post template via functions.php?
- Dynamically changing logo on scroll function [closed]
- Can’t change javascript files
- Remove WordPress default registration client side validation?
- How could I add load more posts to my theme? [closed]
- Live Time on WP showing weirdly [closed]
- Javascript button to call custom fields data
- Google Map JavaScript error after migrating
- Table block variation with header section activated