gpt4 book ai didi

javascript - 是 "if (somestring in {' oneoption' :false, 'secondoption' :false})"considered bad practise in javascript?

转载 作者:行者123 更新时间:2023-12-03 05:25:22 25 4
gpt4 key购买 nike

基本上就是标题。这样的构造是否被认为是不好的做法或者可能导致 JavaScript 中出现一些意外的行为?

if (e.target.name in {name: '', number: ''}) {
// do something
}

它检查 HTMLNode 属性名称是否存在于“object”键中,如果存在则继续。基本检查点击的东西是否是我们需要的。它的性能比这样的更好\更差吗?

if(['name','number'].some(a=>a==e.target.name)) {
// do something
}

进行类型和性能方面的此类检查的最佳方法?

最佳答案

是的,这可能会出现问题,因为 in 运算符会检查所有原型(prototype)链,因此您可能会得到意外的肯定结果。

"constructor" in {name: '', number: ''} // true  !!

如果您仍然想要稳定的性能,但对于小情况,您可以使用一组 Array#includes可能更具可读性。

new Set(['name', 'number']).has(e.target.name);
['name', 'number'].includes(e.target.name);

关于javascript - 是 "if (somestring in {' oneoption' :false, 'secondoption' :false})"considered bad practise in javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41169714/

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