gpt4 book ai didi

javascript - 使用 [true, 'true' ].includes(someVariable) 检查值是否为真有缺点吗?

转载 作者:搜寻专家 更新时间:2023-11-01 00:34:37 25 4
gpt4 key购买 nike

在我们的系统中,我们不能总是确定参数是作为字符串还是 bool 值(动态类型 ahoi!),因此,如果例如我们想检查某个标志是否作为 true 传递(因此 bool 值 true 或字符串“true”),我们通常使用以下选项之一来检查它:

if (condition + '' === 'true')

我不喜欢因为隐式类型转换

if ({true: true, 'true': true}[condition])

我不喜欢它,因为它读起来相当复杂。

if (condition === true || condition === 'true')

我觉得有点丑,有种老旧的感觉。

因此,由于我想考虑所有选项:使用此变体是否有缺点:

[true, 'true'].includes(someVariable) 

(除了它有点像 yoda 条件)

编辑:为了完成,这里有更多方法来检查我想做什么:

if (condition.toString() === 'true')

if (String(condition) === 'true')

我想我会坚持使用常规的 === 'true' || === 正确,检查,但如果可能的话,我仍然希望回答我原来的问题。

最佳答案

if (condition === true || condition === 'true') 读作“Value is true or a string that says 'true '”。这就是你想要做的。这只是一个意见,但我相信在尝试代码可读性时,最重要的是它阅读行为的方式。

[true, 'true'].includes(someVariable) 读作“这个数组包含我们的值”。这不难理解,但对我来说一点也不自然。这不是通常用于此的一段代码,可能会在一瞬间让您的同事阅读代码时绊倒。

最后,我认为理想情况下,您应该确保尽快清理数据,并允许更深层次的处理代码对其内容做出一些合理的假设,而不是像这个问题是关于一个的。假设对程序员和 CPU 都有好处。

关于javascript - 使用 [true, 'true' ].includes(someVariable) 检查值是否为真有缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57306735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com