Show that a space is separable.
Solution 1:
The space $[0,1]^{[0,1]}$ is just the set of all functions from $[0,1]$ to itself in the pointwise topology.
Fix a countable base for $[0,1]$, say all rational intervals. Then the set of all finite families of pairwise disjoint rational intervals is also countable (basic exercise in set theory). Call this set $\mathcal{I}$.
Now the following set of functions $\mathcal{F}$ is dense (and also countable): $f \in \mathcal{F}$ iff there exists some $\{I_1,\ldots,I_n\} \in \mathcal{I}$ such that $f$ restricted to each $I_i$ is a constant function with rational value $q_i$ and $f$ outside $\cup_{i=1}^n I_i$ is always $0$. It's not too hard to see that this is also countable: for each of the countable members of $\mathcal{I}$ we have to choose finitely many rational values for its constant parts to get all such functions.
Now if $U$ is any non-empty basic open subset of $[0,1]$, this just means that we have finitely many points $x_1,\ldots,x_m \in [0,1]$, and as many non-empty open sets $U_1, \ldots, U_m$ of $[0,1]$ such that $U = \{f \in [0,1]: \forall i: f(x_i) \in U_i \}$.
Now find rationals $q_i$ in each $U_i$, and find disjoint rational open intervals $\{I_1, \ldots, I_m\}$ such that $x_i \in I_i$ for all $i$. Then the function that is $q_i$ on each $I_i$ and $0$ outside is in $\mathcal{F}$ by construction and also in $U$. So $\mathcal{F}$ intersects each basic open set and is dense.
This proof essentially captures the main idea of the proof of the already mentioned Hewitt-Marczewsi-Pondiczery theorem. See the Engelking text for a good exposition.
Solution 2:
There is Hewitt–Marczewski–Pondiczery thereorem which says that product of $≤ 2^κ$ spaces of density $≤ κ$ has density $≤ κ$. The corollary is that a product of at most continuum separable spaces is separable. See for example Engelking 2.3.15.