为了账号安全,请及时绑定邮箱和手机立即绑定

这个语法是什么 isNaN(+str!)

这个语法是什么 isNaN(+str!)

慕雪6442864 2023-03-03 19:31:25
在这里找到export function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {  if (str == null || str === '') {    return undefined   } else if (isNaN(+str!)) { // **** THIS LINE ****     return String(str)   } else {    return `${Number(str)}${unit}`   } }
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

该表达式+str!结合了(JavaScript 运算符)一元加号和(TypeScript 独占运算符)非空断言运算符

在完成之前断言!既不str是 null 也不是 undefined 。+但是,由于str == null上面所做的测试,在这一点上str 不能null也不能undefined:断言是不必要的。

所以,它相当于

+str

投射str到一个数字。然后将此数值传递给,如果值为,isNaN它将返回,否则返回。trueNaNfalse


查看完整回答
反对 回复 2023-03-03
?
慕神8447489

TA贡献1780条经验 获得超1个赞

, 或一+元加运算符将对象(str在本例中)转换为数字。它类似于 parseInt 或 parseFloat 但不完全相同。您可以在这个答案中阅读更多相关信息。

断言!str为空,以抑制编译器否则会给出的任何警告。您可以在此处阅读更多内容。

如果str不是数字,则+操作将返回“不是数字”或NaNisNaN如果返回,则返回 true NaN,如果str是有效数字,则返回 false。


查看完整回答
反对 回复 2023-03-03
  • 2 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信