gpt4 book ai didi

javascript - 这个for循环是什么意思?

转载 作者:行者123 更新时间:2023-11-27 22:58:14 25 4
gpt4 key购买 nike

我在这个缩小的 JS 中找到了这个片段通过谷歌:

_ga.utils.getValidColumnGroups = function(a) {
for (var b = [], c = 0, d; d = _ga.metadata.items[c]; ++c)
d = d.attributes.group,
a && (d = _ga.utils.getNormalizedName(d)),
-1 == b.indexOf(d) && b.push(d);

return b
};

无需过多关注此函数正在执行的操作,

  • 我想知道当条件语句赋值而不是典型的比较运算符时,这个循环将如何结束?

    d = _ga.metadata.items[c]

  • 尤其是这一行中的变量 d 会发生什么?

    var b = [], c = 0, d;

  • 一般情况下,会用最后一个语句的逗号进行赋值。但在某些情况下也许并非如此。如果不是,前两个赋值就没用了。这些行的作用是什么?


    d = d.attributes.group,
    a && (d = _ga.utils.getNormalizedName(d)),
    -1 == b.indexOf(d) && b.push(d);

最佳答案

I wonder how this loops will end when the conditions statement is assigning values and not the typical comparison operator?

d = _ga.metadata.items[c]

该表达式的结果是分配给d的值,因此如果d被分配了一个错误值(即如果_ga.metadata .items[c] 返回一个 false 值,例如 undefined0null 等)。

What will happen especially with variable d in this line?

var b = [], c = 0, d;

这只是一些链式变量声明。它声明了bcd,并用空数组、数字零和未定义(分别声明变量时的默认值。

关于javascript - 这个for循环是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37384312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com