Чем выражения в AngularJS отличаются от выражений в JavaScript?

Что такое вообще AngularJS выражения, и чем они отличаются от выражений в JavaScript?

По сути это почти одно и то же, за исключением следующих деталей:

1. Последовательность действий не изменяется, т.к. в Ангуляре нельзя использовать условные операторы, циклические конструкции, исключения с их обработкой и тд

2. В Ангуляре можно передать результат вычисления выражений через цепочку фильтров.

3. В Ангуляре значения всех свойств и атрибутов вычисляются в области видимости в отличие от JS, где это всё происходит в глобальном окне

4. Вычисление выражений допустимо с неопределёнными и нулевыми значениями (в JavaScript подобные вычесления выдавали бы Exception)