Yes, of course it has an effect. Why do you think health care workers wear them?
Because they will be closer than 6ft to infected people.
This all depends on the type of mask and how tightly it fits against one's face.
A mask made from cotton has been shown to be ~70% effective at filtering a virus from droplets in the air: https://www.researchgate.net/publication/258525804_Testing_t...
2. Asymptomatic coronavirus cases don't know they're not healthy, so mask wearing protects others from those people.
Last comment on that I heard from CDC interview by WSJ: "patient becomes contagious either after symptoms appeared, or right before that (couple hours)".
And using common sense, if a person doesn't cough or breathe hard with air droplets, then they must be way less contagious naturally.
As for shortages that's a logistical failing that should be corrected before next time. Like how about require that first aid kits contain 5 masks.
Larger particles called droplets carry most of the virus load from any particular sneeze and are what cause most infections that don't involve hand to face contact. They send to only go 2 meters in talking and sneezes into an elbow but they can go further in an uncovered sneeze. A surgical mask should be generally protective against these getting into your mouth or nose but your eyes are still vulnerable to being infected this way.
There are also smaller particles called aerosols that linger in the air for longer but don't travel very quickly. A much smaller fraction of the virus particles in a typical infected person's exhalations end up in these. In this case a surgical mask will only stop 4/5 or so of the particles you would otherwise breath in - better than nothing but not to be relied upon. In dealing with Coronavirus patients doctors and nurses usually rely on something called an N95 mask that's guaranteed to stop 95% of any sized non-oil particle and in practice seems to stop something like 99% of particles like a coronavirus. These are especially important for medical professionals because some procedures, like the intubations many Covid-19 patients need to survive, tend to cause way more aerosols than normal.
In terms of protecting others surgical masks seem to be a bit less protective with aerosol transmission for outgoing air than incoming air. I would guess because potitive pressure causes surgical masks to puff out a bit and leak more while negative pressure improves the seal. In the one study I've read on the matter it was a 1/3 difference which is noticable but they still make a big difference. More importantly surgical masks seem to stop outbound droplet transmission. On the outbound side the fact that someone's eyes aren't covered will also be irrelevant and someone wearing a mask won't have their droplets land on surfaces causing later hand to face transmission.
Wearing a home made mask is a lot like a surgical masks but a bit less likely to stop aerosols.
For the overall result, Ian Lipkin in a recent interview mentioned a study done in Beijing where they found that people who regularly wore masks were 70% less likely to get SARS in the original outbreak. That's nice but isn't anything like being invincible so measures like social distancing are still important.
If you've got a N95 masks then please give it to someone who's going to be doing things like intubation where it's aerosol stopping power is critically important and just wear a normal cloth mask otherwise. Remember that if your mask stopped some incoming virus particles those particles will still be on the outside of the mask and treat that danger with respect.