The Japanese were also supremely arrogant and infected with what Mitsuo Fuchida referred to after the war as “victory disease”.
Plus the methodical and cautious Nagumo was so distracted by a report that there might be a US carrier in the vicinity. This caused him to order the planes waiting for the second strike on Midway’s airfield to be rearmed with torpedoes. In their haste the Japanese armorers stacked the bombs removed from the planes on the decks of the carriers.
Just waiting for a few bombs from the Navy’s Dauntlesses to detonate among them creating huge chain-reaction explosions on board the enemy carriers.
Don’t forget our superior DC capability. When all four of the Japanese carriers were hit, they all became infernos. Their DC people could not control the fire. Our guys got the Yorktown going so well, when the second bomb run that eventually sunk the Yorktown came overhead, the Japanese thought it was a different carrier because the DC guys has put out all the fires and got her underway.