console.log(planet)
вызывается до кода содержащего .innerHtml . Разве в таком случае он не должен содержать старое значение? console.log(planet);
, который находится до planet.innerHTML = "Red Alert: hit by phaser fire!";
выводит строчку как будто уже измененнено содержание тега, хотя по идее в planet должно хранится <p id="greenplanet">All <em>is</em> well</p>