Everything comes down to infantry. Infantry cost 3 and are the cheapest unit in the game. Whether soaking up casualties to leave more valuable attackers alive, or soaking up casualties and lending weight to defense, it's all about infantry.
All other units are only useful insofar as they help control infantry flows. Artillery are useful as they may help a stack of infantry threaten an opponent's forces. Tanks can be redirected to reinforce friendly infantry stacks at different locations, or threaten enemy infantry stacks away from locations. Subs, navy, and air are used to control the flow of transports that control the flow of . . . that's right, infantry.
It's all about infantry.
The game comes down to stacks of infantry with the appropriate support.
To get support to where it's needed in a timely manner, support needs to be built ahead of time to allow turns for it to move into position.
Artillery or Tanks?
Suppose a player can attack an adjacent territory with an infantry and a tank for minimal good odds, or with infantry and artillery for slightly worse but still acceptable good odds. In the first case, the attacker commits 9 IPC worth. In the second case, the attacker commits only 7 IPC worth.
But probably there is no artillery in position normally. If an artillery was produced two turns ago then moved into position to attack last turn, then it's in position this turn. So a player had to think about that ahead of time.
On the other hand, a tank is probably in position to hit. Even if a tank was produced just last turn (as opposed to two turns ago with the artillery), it may be in position to hit a target this turn.
So the answer to the question is, artillery early, and tanks later, if tanks are built at all.
Submarines vs Destroyers
This is only important as it affects fleet movements which affect transports that carry infantry.
If submarines are in position before destroyers, submarines "win". If destroyers are in position before submarines, destroyers "win".
Imagine an opponent has submarines and air that can hit a sea zone, and a player puts a destroyer down. Now the opponent can use 6 IPC subs that attack at the same value that the 8 IPC destroyer defends at, plus superior weight of numbers with air to probably win without the defender even being able to score a hit - and if the defender gets lucky and hits, even then it's trading a 8 IPC destroyer for a 6 IPC submarine.
On the other hand imagine an opponent has destroyers and air that can hit a sea zone, and a player builds submarines. Air can hit a submarine if an attacking destroyer is present, so the destroyer and air attack, all defending subs defend only at 1 so have a hard time hitting, even if the attacking destroyer is destroyed the air can't be. So the opponent is likely to kill quite a lot of subs worth 12 or 18 or maybe 24 IPC at a cost of an 8 IPC destroyer.
Submarine and destroyer zoning is crucial to fleet movement. If moving away from friendly industrial complexes and towards opponent industrial complexes, it's a good idea to have an extra destroyer or two around to hunt subs in case the opponent builds some.
Besides these, destroyers are the cheapest unit that can be taken as casualties against enemy air attacks that don't include an enemy destroyer. So destroyers are really useful defensive fodder in any event.
Battleships and Cruisers
Make the best use of the ones you have, because you shouldn't get any more. Neither battleships nor cruisers can hunt down subs, both are far more costly per casualty taken than destroyers, and unlike carrier/fighter combinations, neither is much use against land targets. Both can bombard, but it's a single bombardment that unlike other versions of Axis and Allies doesn't kill units like submarine Surprise Strikes do. Fighters on the other hand can keep fighting, and can also fly inland to support as needed (while other fighters are flown up if need be).
Battleships and cruisers might theoretically be useful if there were loads of antiaircraft guns all over. But antiaircraft guns have no defense value against ground targets and are quite expensive so even if an opponent builds antiaircraft guns you're still probably better off with fighters and carriers.
Overextending means leaving stuff out where an opponent can mess them up at little cost.
Superior Attack Means Less Attacker Casualties
Say a player leaves six infantry on a territory near masses of opponent units. Maybe they think "well there's six of us, we'll probably get six of them". Or something. I'm not sure.
But if an opponent attacks with overwhelming force that's actually unlikely. If an opponent attacks with 18 infantry 12 tanks in this scenario, probably the attackers lose about 2 infantry, while the defenders lose 6.
So don't overextend.
This is used by some Axis and Allies players to refer to attacking, then retreating and moving reinforcements up.
So imagine there's a block of 12 defending infantry, and an attacker can only bring 8 infantry 8 tanks. 4 fighters Well the first round of combat, probably the defender kills 4 and the attacker kills 7, which is nice for the attacker. But if the attacker keeps going, probably they end up with 1 infantry 8 tanks controlling the territory (or whatever it is). Then on the next turn, the opponent can attack that 1 infantry 8 tanks and destroy them all.
To be more explicit, say that battle resulted in the defender losing 12 infantry for the attacker's 6 infantry, losing 36 IPC for 18 IPC. That's good for the attacker.
But if the defender can kill 59 IPC at a cost of 18 IPC the next turn, that's a net 54 IPC lost for defenders and 77 IPC lost for attackers. That's bad for the attacker, even if the attacker temporarily controlled a 2 IPC territory or whatever, it just wasn't worth it.
So instead, an attacker may attack for one turn, then retreat, then move units up from behind to reinforce so an opponent doesn't have a good attack.
Strafing is risky. Too few attacker hits and too many defender hits means net losses. Too many attacker hits can result in taking a territory outright. So use with caution.
You Can't Afford To Lose Stuff
You don't have to hide under a rock all game. But don't risk your valuable units if you don't absolutely need to.
You might use a few artillery here and there to bolster an attack and be lost in turn to enemy counterattack (be careful not to spend more than you really need even with cheap artillery).
But for anything like tanks, or even more so for fighters, or generally anything else that's more expensive than infantry (which is everything), be very careful and think about whether you can really afford to lose it.
There are a very few exceptions to this, generally involving blowing up enemy support that they couldn't really afford to lose either.
Try not to leave your valuable infantry support where it can be destroyed. Don't even let your infantry go where it can be destroyed unnecessarily.