(编辑:我在阅读其他人的代码时发现了这种语法)
使用以下语法在javascript中设置变量是否有充分的理由:
this.index >= this.items.length && (this.index = 0);
只是将表达式放在一行代码上,或者是否有其他代码,我敢说更好,这样做的理由......
编辑:代码相当于:
if (this.index >= this.items.length) {
this.index = 0;
}
答案 0 :(得分:3)
它只是this.index = this.items.length
还是像this.index = false
那样做了一些奇怪的事情?
如果您打算:
if (this.index >= this.items.length) {
this.index = 0;
}
然后你可以考虑:
this.index = (this.index >= this.items.length) ? 0 : this.index;
但这并没有真正改善它,是吗?
答案 1 :(得分:1)
我认为此代码的意图是
this.index = this.index >= this.items.length ? this.items.length : 0;
或
this.index = this.index >= this.items.length ? 0 : this.items.length;
第三种可能的意图(可能真的应该这样做)。
this.index = this.index >= this.items.length ? 0 : this.index;
但这只是最好的猜测,这条线根本没有任何意义......而且你通常不会分配这样的变量。实际上它甚至没有赋值变量this.index。
实际上你的代码确实有效。 请参阅此处的工作示例:http://jsfiddle.net/Elak/EthsP/
在tbh之前从未见过这种语法,我写了很多JavaScript ......但你永远不会停止学习新的东西:p
答案 2 :(得分:1)
不,没有充分的理由,我认为人们只是做了很多,所以这是一个“一个班轮”,你最好使用这样的if
。
if( this.index >= this.items.length ) {
this.index = 0;
}
因为你可以看到人们对它的实际行为感到困惑。
但你仍然可以保持一个像这样的单线
if( this.index >= this.items.length ) { this.index = 0; }