2017-10-22 13 views
-2

私はこの単純なコードを試してきました。誰かがこのvarが定義されていない理由を説明できますか?

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つのスペースをインデントします。 **スクリーンショットをコードとして実行することはできません。** – tadman

答えて

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>

+0

@VladNorton - ようこそ。答えを受け入れることを忘れないでください:) –

関連する問題