javascript老司机帮忙解读两行代码(俄罗斯方块,前两行)?
的有关信息介绍如下:
前两行,分别定义了两个变量,一个是map,一个是tatris。map是一个数组,他用了eval语句执行了一段代码:"["+Array(23).join("0x801,")+"0xfff]"大概的意思,就是建立了一个数组[],Array(23)是一个23个元素的空数组,然后join的用途是把数组转化成字符串,字符串最后加上0xfff这样就变成了:[0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0xfff]由eval执行上面的字符串,就会把这个数组生成,然后通过=赋值给map变量。第二行,就简单了,就是一个声明了一个二维数组,这个数组一共7个成员,数组的成员是数组。我估计就是不同的方块的排列组合。之后我们看到后面的代码有这段dia=tatris[~~(Math.random()*7)];就是从tatris数组里随机取一个数组。也就是提取一个随机的方块的数据。你这段代码中,map并没有提及,我估计是用来绘制背景的数据之类的东西吧。



