在javascript中设置变量的语法

时间:2013-09-25 12:20:02

标签: javascript

(编辑:我在阅读其他人的代码时发现了这种语法)

使用以下语法在javascript中设置变量是否有充分的理由:

this.index >= this.items.length && (this.index = 0);

只是将表达式放在一行代码上,或者是否有其他代码,我敢说更好,这样做的理由......

编辑:代码相当于:

if (this.index >= this.items.length) { 
    this.index = 0; 
}

3 个答案:

答案 0 :(得分:3)

哇,不。只是没有。我认为自己是一个非常优秀的JavaScript程序员,我无法告诉你这段代码的作用。

它只是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; }