The [SerializeField] attribute is used to mark non-public fields as serializable: so that Unity can save and load those values (all public fields are serialized by default) even though they are not public.
That's all it does. You use it when you want that.