gpt4 book ai didi

javascript - 好奇其他人会如何为这个 : som var = number 0 || false? 创建回退

转载 作者:行者123 更新时间:2023-11-29 16:14:15 24 4
gpt4 key购买 nike

所以,我遇到了一个错误,并认为它很有趣。有一次我坐下来思考了 5 秒钟,这很有意义,但很好奇将来如何克服它。

因此,我在对象中设置了一些哈希值。 (来自更大对象的代码片段)。

   someBigObj : {
someObj : {
item1 : 0
item2: 1
item4: 2
item3: 3
}
}

所以,我这样设置是因为我需要引用一个数组位置,该位置对应于与这些项目关联的数据。

所以,如果我碰巧引用了 item1 -- 看看我们得到了什么。

var varReference = someBigObj.someObj['item1'] || false;
// which is equivalent to
var varReference = 0 || false;

看看那里发生了什么?该引用为 0。因此 varReference 始终为 false。在这种情况下,我实际上想要数字 0,因为我需要访问一个数组元素。我觉得把它串起来对我来说很奇怪,因为它不是一个字符串,而是一个整数。我怎样才能继续使用 || 的这个回退? false,但实际上得到的数字 0 被视为有效值。

注意:我知道我可以显式测试等。只是好奇是否有解决我的解决方案的快捷方式或 native js(我不知道)。认为类似的东西会起作用,但没有。

 Number(0) || false

补充说明:我最后没有放 || false,因为即使没有正确引用它也没有错误。所以这实际上并不重要,但我总是喜欢有后备方案,这就是我很好奇的原因。

最佳答案

如果您希望假值通过测试,那么测试可能需要明确查找 undefined,而不仅仅是假值。

var varReference = someBigObj.someObj['item1'] !== undefined ? someBigObj.someObj['item1'] : false;

请记住,许多合法值都是错误的,例如 0""null(以及其他)。

关于javascript - 好奇其他人会如何为这个 : som var = number 0 || false? 创建回退,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19732437/

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