对象不是函数,在计算某项是否为空时出现错误

object not a function error when evalulating whether something is null

本文关键字:是否 错误 函数 计算 对象      更新时间:2023-09-26

我有以下代码:

console.log(callback);
if (typeof callback != "undefined" || callback != null){
  callback();
}

,控制台输出:

null

但是javascript仍然试图执行callback()函数调用。知道为什么吗?

因为它应该是&&,即logical AND:

if (typeof callback != "undefined" && callback != null) {
    callback();
}

但是我建议对"function"类型使用check:

if (typeof callback === "function") {
    callback();
}

或更短:

typeof callback === "function" && callback();

try:

console.log(callback);
if (!(typeof (callback) == "undefined" || callback == null)){
  callback();
}