这是什么JavaScript语法

What JavaScript Syntax is this?

本文关键字:语法 JavaScript 是什么      更新时间:2023-09-26

这是我在github上reding的Redux.js中的一个示例。有人能解释一下这里使用的语法吗?

var currentListeners = []
var nextListeners = currentListeners
....
someFunc() {
// THIS:
var listeners = currentListeners = nextListeners
for (var i = 0; i < listeners.length; i++) {
    listeners[i]()
}
.....
}

多重赋值和for语句是否独立?这就可以解释了。但是作业末尾缺少的分号是什么呢?好做法/坏做法?

赋值运算符的计算结果为已赋值的值(实际上是正确的操作数)。作为副作用,它会更新左侧操作数的值。因此,a = b = c将c的值赋给b,求值为c,然后将c的数值赋给a,求值为c.

赋值是右关联的——它从右到左分组。

此外,如果每条语句都在自己的行上,则语句之间的分号是可选的(链接中缺少一些细节)。

最后,这里发生的一件有趣的事情是向上一个范围声明的变量赋值。Javascript中的函数是声明新作用域的一种方法。请注意,如果函数只是在代码段中定义的,那么在调用它之前,它不会对currentListeners的值产生影响。

var listeners = currentListeners = nextListeners

和这样做是一样的:

var currentListeners = nextListeners;
var listeners = currentListeners;

希望这能帮助