Garageband vs Audacity vs FL Studio

To be very honest, I'd like to say that every software keeps its own value in the terms of features. Amongst all these three-Garageband, audacity, and fl studio, Garageband wins the race because of its freeware stuff and exceptional features. Every window user on Google looking for the alternative of Garageband for PC because of its features but unfortunately, It's not available for windows.
So, you're very lucky that You have Mac, Apple has made it available for free for Mac users so I personally recommend you to go for it. Why waste money when You can get something better for free...
On other side, FLstudo and Audacity are well-known software but they are too costly so forget all and go for Garageband..Compose your creations and enjoy.
Here, you can see the compariosn amongst other software that will give you a better brief.
Garageband vs Audacity vs Flstudio
 
The obvious question is what do you mean by 'composing'?

Are you putting together tunes from looped audio snippets?

Are you composing 'beats' from samples?

Are you composing music using MIDI controllers (keyboard, percussion pad, MIDI drumkit)?

Are you recording acoustic instruments and vocals to individual tracks, processing that audio, and then creating a mixdown to stereo?

The various apps have their strengths and weaknesses depending on what exactly you're trying to do.

That said, Garageband is useful for all of the above, and it's free if you're on a Mac. It doesn't hurt to just dive in and try it out. You might really like it.
 
Garageband is fun - my son does some great work with it.

... and Audacity are well-known software but they are too costly ...
I think Audacity is (was) open source and has always been free - not sure about FL Studio.
Bit of a stink around Audacity atm because it was purchased a few months ago and there is dialogue around data collection by the new owners.
Audacity 'Spyware' Claims Follow Privacy Policy Changes By New Owner - MacRumors

Maybe best to wait a while for an independent fork of the code if contemplating that route.