'if(err)'在Javascript中精确测试的是什么?

时间:2014-07-15 09:29:28

标签: javascript if-statement null undefined instanceof

许多回调函数首先检查err参数,如下所示:

function myCallback(err, result) {

    if ( err ) {

        // Handle error
        ...

    }

    ...

}

if (err)测试验证了什么?是否检查对象是否为null?它会检查它是undefined吗?不应该对instanceof Error进行一次测试吗?该测试何时返回true

1 个答案:

答案 0 :(得分:1)

在Node.js世界中,回调函数具有以下签名

function(error, result){}

如果没有错误,则error参数通常设置为null,否则设置为相应的错误对象。

因此,检查if (err)检查我们是否确实有错误情况。如果err对象为null,则检查将失败(因为null是假的)否则将执行错误处理代码。

  

不应该为一个错误测试吗?

它不一定是Error对象的实例。我们甚至可以将对象文字作为错误对象或甚至表示错误数组的数组传递。

  

是否检查对象是否为空?是否检查是否未定义?

如果错误对象为nullundefined,则测试将评估为假。