【问题标题】:Js difference between ?? and || with numbers [duplicate]js之间的区别??和 ||带数字[重复]
【发布时间】:2021-08-22 14:59:29
【问题描述】:

试图访问我写了这段代码的查询页面的值:

const page = parseInt(req.query.page) ?? 1

但是当我尝试使用page 时,它说它是Nan。更改代码:

const page = parseInt(req.query.page) || 1

改为返回一个普通整数。为什么会这样?

【问题讨论】:

标签: javascript


【解决方案1】:

|| 将在左侧为假时计算右侧。唯一可能是假的数字是 0 和 NaN。如果

parseInt(req.query.page)

计算其中任何一个,整个表达式将计算到右侧,1

?? 相反,如果左侧是 undefinednull,则计算右侧。 parseInt 永远不会返回 undefinednull,所以

const page = parseInt(req.query.page) ?? 1

等价于

const page = parseInt(req.query.page)

【讨论】:

    猜你喜欢
    • 2011-07-16
    • 2023-03-19
    • 1970-01-01
    • 2021-09-07
    • 2014-08-16
    • 2011-04-08
    • 2012-11-24
    • 2013-06-05
    • 2021-09-29
    相关资源
    最近更新 更多