猿问

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

在这里找到

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}`
  }
}


慕雪6442864
浏览 119回答 2
2回答

慕标5832272

该表达式+str!结合了(JavaScript 运算符)一元加号和(TypeScript 独占运算符)非空断言运算符。在完成之前断言!既不str是 null 也不是 undefined 。+但是,由于str == null上面所做的测试,在这一点上str 不能null也不能undefined:断言是不必要的。所以,它相当于+str投射str到一个数字。然后将此数值传递给,如果值为,isNaN它将返回,否则返回。trueNaNfalse

慕神8447489

, 或一+元加运算符将对象(str在本例中)转换为数字。它类似于 parseInt 或 parseFloat 但不完全相同。您可以在这个答案中阅读更多相关信息。断言!不str为空,以抑制编译器否则会给出的任何警告。您可以在此处阅读更多内容。如果str不是数字,则+操作将返回“不是数字”或NaN。isNaN如果返回,则返回 true NaN,如果str是有效数字,则返回 false。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答