首页 > 解决方案 > 如果定义了数字 0,是否有更聪明的测试方法?

问题描述

鉴于以下功能,

const isDefined = value => !!value

如果0通过,它会错误地失败。

所以,如果我正在映射类似的东西,

const data = ['a', 'b', 'c']

const Component = () => data.map((element, index) => <div key={index} onClick={() => handleClick(index)}>{element}</div>

const handleClick = param => console.log(`is ${!param ? 'not' : ''} param!`)

然后对于 index 0,它将打印is not param!

我会修复它,

const handleClick = (param = null) => console.log(`is ${!param === null ? 'not' : ''} param!`)

但我想知道是否有更聪明的方法来绕过 Javascript 的虚假概念,考虑到0被认为是虚假的?

标签: javascriptreactjs

解决方案


如果你使用 lodash,你可以使用isNil函数:

https://lodash.com/docs/4.17.15#isNil

如果没有,您可以使用??

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator


推荐阅读