JavaScript三分配

时间:2013-02-06 23:57:57

标签: javascript variable-assignment

我将一些JavaScript移植到Java中,并且我很难理解以下代码中的两行:

var blocks=[];
for (var z=0; z<size; z++) {
    var slice=blocks[z]=[];    //Those are the lines I don't understand.
    for (var x=0; x<size; x++) {
        var row=slice[x]=[];    //Those are the lines I don't understand.
        for (var y=0; y<size; y++) {
            row[y]=isFull(x,y,z);
        }
    }
}

第一行是声明&#34; slice&#34;,然后它分配&#34; blocks [z]&#34;,然后再分配一个空数组。

在我写这篇文章时,我想到的可能是在分配新数据之前清除任何先前的信息,但我不确定。

3 个答案:

答案 0 :(得分:1)

实际上为blocks[z]分配了一个空数组,然后将blocks[z](空数组)的值分配给slice

基本上,这只是为两个(或更多)变量赋值的简短方法

答案 1 :(得分:1)

是和否,它会清除以前的数据,但这就是var正在做的事情。 重要的是它分配一个数组,以便以下几行不会崩溃

blocks =[]; // blocks is an array of zero length 'filled' with NULL values;
var slice = blocks[z]; // slize would be the same as blocks[z] so it'd be NULL
blocks[z] = []; // blocks[z] is now an zero length array filled with NULL values.

所有作业代码都是从右到左执行的,因此它首先将一个数组分配给blocks[z]并将该数组分配给var slice

等等

答案 2 :(得分:0)

x = y = z;

完全等同于:

y = z;
x = y;
按顺序