Javascript 检查变量是否为函数的最佳方法是什么?

Javascript 检查变量是否为函数的最佳方法是什么?,javascript,function,typeof,Javascript,Function,Typeof,我已经通过多种方法来检查变量是否是函数,但我无法找出其优缺点、使用哪一种以及原因 在typeof的情况下,我的比较是否会失败 1) 函数是函数(functionToCheck){ 返回functionToCheck&&{}.toString.call(functionToCheck)=='[object Function]';} 2) typeof functionToCheck==“function” 3) functionToCheck.constructor==Function在一个完美的

我已经通过多种方法来检查变量是否是函数,但我无法找出其优缺点、使用哪一种以及原因

typeof
的情况下,我的比较是否会失败

1)
函数是函数(functionToCheck){
返回functionToCheck&&{}.toString.call(functionToCheck)=='[object Function]';}

2)
typeof functionToCheck==“function”


3)
functionToCheck.constructor==Function

在一个完美的世界中,它们都应该返回相同的值

const functionToCheck=()=>{};
log(isFunction(functionToCheck));
log(functionToCheck=='function');
console.log(functionToCheck.constructor==函数);
console.log(functionToCheck instanceof Function);
函数isFunction(函数检查){
返回functionToCheck&&{}.toString.call(functionToCheck)=='[objectfunction]';

}
Hi。这个链接可以帮助你回答你的问题吗?使用
typeof方法\u进行评估===“函数”