JavaScriptを勉強し始めて、2週間ほどの者です。(teratailは初質問。)
以下の関数**「FutureCalendar1」と「FutureCalendar2」**は中身が完全に一緒なのですが、結果をコンソールログで出力すると、FutureCalendar2の方が1日分多い日数が出てしまいます。中身が同じなのに、なぜ結果が違うのかがわからずに困っております。
javascript
1const today = new Date(); 2 3//中身が同じ関数 4const FutureCalendar1 = (AddedDate) => { 5 today.setDate(today.getDate() + AddedDate); 6 const year = today.getFullYear(); 7 const month = today.getMonth() + 1; 8 const day = today.getDate(); 9 return String(year) + "年" + String(month) + "月" + String(day) + "日"; 10}; 11 12//中身が同じ関数 13const FutureCalendar2 = (AddedDate) => { 14 today.setDate(today.getDate() + AddedDate); 15 const year = today.getFullYear(); 16 const month = today.getMonth() + 1; 17 const day = today.getDate(); 18 return String(year) + "年" + String(month) + "月" + String(day) + "日"; 19}; 20 21console.log(FutureCalendar1(1)); 22console.log(FutureCalendar2(1)); //こちらの方が1日分多い日付が出力される
「const today = new Date();」の処理を両方の関数内に記述すると、結果は揃ったのですが、関数の外に出すと結果が不揃いになるようです。なぜでしょうか・・・? 「const today = new Date();」を何度も書くのが美しくない気がしたので、関数の外に出してみたかったのですが・・・
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/04 12:46
2021/05/04 14:18