我有一个程序,该程序调用后端服务并收集响应。收集如下。我们对响应对象进行解构,得到Error
和Data
。
const { data, error } = response;
如果没有错误,则Error
对象将为空。考虑以下两个选项。
选项一:
if (!error) {
// handle error
}
选项二:
if (error !== null) {
// handle error
}
在选项一中,根据this answer,检查了以下条件。
调用选项1 时,执行顺序是吗? 选项1 中如何进行内部条件检查?基于此,如果我们使用选项1 而不是选项2 ,会对性能产生一定的影响吗?
答案 0 :(得分:1)
这种if语句用法没有顺序,JS只是执行类型转换以将任何值强制转换为布尔值,然后评估结果,请查看此链接以获取更多详细信息:https://developer.mozilla.org/en-US/docs/Glossary/Falsy
错误的结果:
if (false)
if (null)
if (undefined)
if (0)
if (NaN)
if ('')
if ("")
if (``)
if (document.all)
// => false
真实结果:
if (true)
if ({})
if ([])
if (42)
if ("foo")
if new Date())
if (-42)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)
// => true