在 JavaScript 中设置变量的语法
Syntax for setting a variable in javascript
(编辑:我在阅读别人的代码时发现了这种语法)
是否有任何充分的理由使用以下语法在 javascript 中设置变量:
this.index >= this.items.length && (this.index = 0);
只是为了在一行代码上获取表达式,还是有另一个,我敢说更好,这样做的原因......
编辑:代码等效于:
if (this.index >= this.items.length) {
this.index = 0;
}
哇,没有。只是没有。我认为自己是一个相当优秀的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;
但这并没有真正改善它,不是吗?
不,没有充分的理由,我认为人们只是经常这样做,所以它是一个"单行",你最好使用这样的if
。
if( this.index >= this.items.length ) {
this.index = 0;
}
因为正如你所看到的,人们对它的实际作用感到困惑。
但是你仍然可以像这样保持一个衬里
if( this.index >= this.items.length ) { this.index = 0; }
我认为
这段代码的意图是
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
相关文章:
- 为两个ID设置一个变量的正确语法
- 在javascript函数的循环中设置全局布尔变量的最佳语法
- Javascript函数变量传递语法问题
- Javascript中的LESS变量给出语法错误
- Jquery 替换所有文本语法正则表达式中的变量
- 使用带有返回的 Jquery 变量的正确语法
- Jquery 语法和变量
- 动态变量名语法
- 用于将变量传递给函数的javascript语法
- 语法错误:意外的令牌非法设置变量
- 语法错误:我的 js 代码中出现意外的令牌变量
- 通过 Excel VBA 引用 Acrobat Javascript 全局变量所需的语法是什么?
- JavaScript,声明变量时混淆语法
- 未捕获的语法错误:意外的令牌,将多个变量传递给javascript函数
- 函数语法,传递变量
- Angular JS使用controllerAs和这个语法与范围或这个变量
- 你能解释一下这个JavaScript语法(变量外推)吗?
- Javascript 变量声明语法
- 语法:const {} = 变量名称,任何人都可以解释或指出我正确的方向
- JSON语法-变量被解释为文字