Script and alias and script and function aren't mutually exclusive. You can and do store aliases and functions in scripts.
Scripts are just code which is made persistent. Useful functions and aliases, which you like to use in the future are stored in scripts. However, a script is often a collection of more than one function.
Since aliases aren't parametrizedparameterized, they are very limited; usually to define some default parameters.
A function is a separate unit of code, a well defined-defined concept of a few lines of code, which can't seperatedseparated into smaller, useful parts,parts; one which can be reused directly or other by other functions.