This is a conceptual question.
What are the differences between these? and what are the pros and cons of these formats?
According to Mike Bostock (and other contributors to the TopoJSON extension):
TopoJSON is an extension of GeoJSON that encodes topology. Rather than representing geometries discretely, geometries in TopoJSON files are stitched together from shared line segments called arcs. TopoJSON eliminates redundancy, offering much more compact representations of geometry than with GeoJSON; typical TopoJSON files are 80% smaller than their GeoJSON equivalents. In addition, TopoJSON facilitates applications that use topology, such as topology-preserving shape simplification, automatic map coloring, and cartograms.
One possible disadvantage of TopoJSON is that you need to implement support for converting the TopoJSON back into GeoJSON, for libraries that only work with GeoJSON.