質問: ### 前提・実現したいこと Javascriptを勉強し始めたところです。 「window.onload」という命令文?がどういう場面で使うのかと疑問に思いました。 ### 該当のソースコード ``` 今日は曜日 ``` ### 試したこと これは教本のソースなのですが、 そのまま立ち上げると「今日は月曜日」と表示され window.onloadを抜いみると「今日は曜日」となり
回答: HTMLは上から順に処理されていきます。 headの中にスクリプト書くと、headが読まれる時点でスクリプトが実行されます。その時点ではまだbodyは存在しないので、`document.getElementById("day").textContent = str;`を実行するとエラーになります。 その後で、bodyが解釈されて「今日は曜日」と表示されます。 `window.onload = function()~~~`と書くことで、headの解釈時点で、「htmlの解釈が全部終わってページが表示されてからfunctionを実行する」というのを予約することになります。この場合、functionの中身が実行される時点ですでに「今日は曜日」と表示されているので、`document.getElementById("day").textContent = str;`が成功します。