DAX always references the column and preforms in evaluation context: row context, filter context.
They are having different functionalities and usages. Whenever you feel they look the same, repeat the sentence like a mentra:
Filter context filters, row context iterates,they are not the same!
In other words, filter context doesn't iterate, row context doesn't filter
But the question will be what they are used for? So, look at the following:
Row context is used to retrieve/obtain the value of a certain column for a specific row to evaluate
Filter context is a set of filters, used to narrow the data modle to get the data you desired
Think carefully again: How to create a row context or filter context? Answers are that:
Row context:
1. Author a formula in calculated column
2. Use iterator like: FILTER, X-functionsect.
Filter context:
1. Outer filters like the row/column of a report/pivot table, slicer, the filter of a report/page/visual.
2. Inner filters: Queries like the second parameter of CALCULATE/CALCULATETABLE
TO BE CONTINUE...