What is texture mapping?
Texture mapping is, at its most basic, a method for adding detail to the geometry being rendered by displaying an image on the surface. Consider the following image:
Using only the techniques that we've learned so far, this relatively simple scene would be very difficult to build and unnecessarily complex. The WebGL logo would have to be carefully constructed out of many little triangles with appropriate colors. Certainly such an approach is possible, but the additional geometry needed would make it quickly impractical for use in even a marginally complex scene.
Luckily for us, texture mapping makes the above scene incredibly simple. All that's required is an image of the WebGL logo in an appropriate file format, an additional vertex attribute on the mesh, and a few additions to our shader code.