有人可以向我解释为什么这个变量是未定义的



我一直在尝试这个简单的代码。

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()];

但是为什么?

d.getDay() 中使用的方法 Date#getDay 返回日期的数字,但不更改 d ,这仍然是 date 对象。要使用 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>

最新更新