有一段代码不能理解
for (var i = 2; i <= 6; i += 2) {
temp = Array(i + 1).join(i);
console.log(temp);
}
结果输出的是22,4444,666666.这是为什么啊?
PHP中文网2017-04-10 15:24:25
Array(i + 1)
表示长度为i+1
的数组,但是均为空,join
方法的参数代表分隔符,这里代表以2
,4
,6
,为分隔符,所以为空2空2空
,空4空4空4空4空
PHPz2017-04-10 15:24:25
创建数据的三种方法。
new Array();
new Array(size);
new Array(element0, element1, ..., elementn);
当传入一个参数时,是第二种构建方法。
以i=2来说。
temp = Array(2+1).join(2);
创建长度为为3的数据,
join(2),2为分隔符。 所以输出 22;
高洛峰2017-04-10 15:24:25
你可以这么理解:
[undefined, undefined, undefined].join(2);
"22"
[undefined, undefined, undefined, undefined, undefined].join(4);
"4444"
[undefined, undefined, undefined, undefined, undefined, undefined, undefined].join(6);
"666666"