There are two different ways to define languages:
- A language over an alphabet $\Sigma$ is a collection of words over $\Sigma$.
- A language is a collection of words.
While we often think of a language informally just as a collection of words (without an underlying alphabet), the usual definition of finite automata does specify an alphabet, and so the language of an automaton always has an alphabet associated with it.
When we write $L = \{ w \in \{0,1\}^* \mid \cdots \}$, we mean that $L$ is a language over the alphabet $\{0,1\}$ consisting of all words such that "$\cdots$". This is just a conventional way to describe the alphabet that the language is defined over.
Wikipedia implicitly uses the first definition. If we want to make the definition more formal, we would define a language as a pair $(L,\Sigma)$, where $\Sigma$ is an alphabet (a non-empty finite set) and $L$ is a subset of $\Sigma^*$ (the set of all words over $\Sigma$).
While formally a language is a pair $(L,\Sigma)$, often the alphabet $\Sigma$ is understood from context, and we only talk about $L$. This is the same convention used in abstract algebra, where the underlying set stands metonymically for the entire algebraic object.
Given just a collection of words $L$, it is impossible to completely reconstruct $\Sigma$. For example, the empty language can be viewed as a language over any alphabet, the language $\{0^n : n \geq 0\}$ can be viewed as a language over any alphabet containing the symbol $0$, and so on. The notation $L = \{w \in \Sigma^* \mid \cdots\}$ usually suggests that the underlying alphabet is $\Sigma$, but it is not necessarily used consistently in this way.
In most circumstances, not much is lost by not specifying the underlying alphabet explicitly. I suggest ignoring such niceties whenever possible.