![](/img/trans.png)
[英]Isn't it redundant to use "!!" in an if statement since if statments already check for truthy?
[英]This key / list check is redundant, isn't it?
因此,我正在检查列表(哈希)中的键,我必须用两种不同的方式对其进行编码,但忘记删除其中的一部分。 大声笑。 但是对我来说,看它-似乎多余。 是这样吗
var somelist = {
a : 'somevalue1',
b : 'somevalue1',
c : 'somevalue1',
d : 'somevalue1',
e : 'somevalue1',
f : 'somevalue1'
}
for(var key in somelist ){
if(somelist.hasOwnProperty(key)){ // <-- redundant
// do something
}
}
如果我们遍历键-那么假设是,它是列表的属性,是吗? 我想确保我的大脑不被炸。 :-)
我查看了以下两个帖子:
但是我的用法似乎更有益。 由于我在这里声明了var键,因此它不是本地的,并且我不必担心原型链冲突吗?
因此,在我看来,它似乎是多余的或不需要的,但这将被视为“不良形式”。 似乎因为我没有在构造函数中使用此哈希,所以我不必担心原型继承等问题。
因此,我的两个问题是:
由于我在这里声明了var键,因此它不是本地的,并且我不必担心原型链冲突吗?
即使不需要,我在这里的用法也被认为是“不良形式”吗? 我想遵守某些编码标准-但也许我的意图是错误的。
这与您不必担心的key
有关。 它是对象本身。
Object.prototype[1] = 1;
var somelist = {}
for (var key in somelist) {
alert(key);
}
// '1' was alerted
您只需使代码更健壮即可执行此检查,建议将其作为最佳实践。 但是,为了使意图变浅,我通常采用倒置模式:
for( var key in obj ) {
if( !obj.hasOwnProperty( key ) ) {
continue;
}
// do something
}
So So指出了潜在的冲突,但是您的数据也可能会发生变化,然后代码可能会中断。 软件开发的黄金法则:预期失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.