Javascript Date(),Date.UTC()作用域运算符的奇怪行为

Javascript Date(),Date.UTC()作用域运算符的奇怪行为,javascript,Javascript,是我做错了什么,还是在Date()/Date.UTC()构造函数中使用范围运算符([…arr])时出现了已知的错误 让我困惑的是: x = [2015,5,1]; //(3) [2015, 5, 1] new Date(2015, 5, 1); //Just as expected, Mon Jun 01 2015 00:00:00 GMT+0300 (Eastern European Summer Time) new Date([...x]); //Fri May 01 2015 00:00:

是我做错了什么,还是在
Date()
/
Date.UTC()
构造函数中使用范围运算符(
[…arr]
)时出现了已知的错误

让我困惑的是:

x = [2015,5,1]; //(3) [2015, 5, 1]
new Date(2015, 5, 1); //Just as expected, Mon Jun 01 2015 00:00:00 GMT+0300 (Eastern European Summer Time)
new Date([...x]); //Fri May 01 2015 00:00:00 GMT+0300 (Eastern European Summer Time)
new Date(Date.UTC([...x])) //Invalid Date
p、 我知道,后者是不明确的,因为带有多个参数的
Date()
已经返回UTC日期参数不是数组

移除阵列,如下所示:

x=[2015,5,1];
var d=新日期(日期UTC(…x))

log(d)
,因为传递的是与参数相同的数组
x
。使用。因为
Date.UTC
不接受数组作为参数

UTC()
采用逗号分隔的日期和时间参数

x=[2015,5,1]//(3) [2015, 5, 1]
新日期(2015年5月1日)//正如所料,2015年6月1日星期一00:00:00 GMT+0300(东欧夏季时间)
console.log(新日期(Date.UTC(…x)))