Any
Mathematica symbol can have both a variety of types of values, and a variety of independently settable attributes that define overall aspects of its behavior.
Attributes — find the attributes of a symbol
Listable — automatically thread over lists appearing in arguments
Flat — make

equivalent to

, etc. (associativity)
Orderless — make

equivalent to

, etc. (commutativity)
OneIdentity — treat

as equivalent to
a, etc. (idempotence)
Function Argument Evaluation
Numeric-Related Properties
NumericFunction — treat as a numeric function
Constant — treat as a constant in differentiation, etc.
Stub — stub created by
DeclarePackage, etc.
Temporary — temporary local variable from
Module, etc.
Protected — keep protected against redefinition
Locked — keep all attributes locked (settable but not clearable)
Function — a pure function, potentially with attributes