我一直在尝试这个简单的代码。
var d = new Date();
x = ["Sunday","Monday","Tuesday", "Wednsday", "Friday", "Saturday", "Sunday"];
d.getDay();
document.getElementById("demo").innerHTML = "Today is " + x[d];
但它不起作用。它说今天未定义
相反,它的工作原理如下document.getElementById("demo").innerHTML ="Today is " x[d.getDay()];
但为什么?
答案 0 :(得分:4)
您在d.getDay()
中使用的方法Date#getDay会返回当天的编号,但不会更改d
,它仍然是日期对象。要使用getDay()
方法返回的值,您需要将结果分配给变量,或者直接使用它,就像在x[d.getDay()];
中一样。
因为您使用括号d
来使用对象[]
来访问不存在的数组索引,所以得到undefined
作为结果。
因为您实际上并不需要日期,只需将日期直接指定给d
:
var d = new Date().getDay()
示例:
var d = new Date().getDay();
var x = ["Sunday", "Monday", "Tuesday", "Wednesday", "Friday", "Saturday"];
document.getElementById("demo").innerHTML = "Today is " + x[d];
<div id="demo"></div>