The developer of D3.js, Mike Bostock said, D3 is a visualization API intended to be the lowest layer of visualization tools, as in the visualization "kernel," or "standard library”.
Earlier, D3 was using Unicode variable names and string literals but D3 version 4.0 has now started using ASCII code which avoids encoding issues.
Version 4.0 has deprecated the d3.geom.polygon constructor. Developers instead have to pass an array of vertices to polygon methods. This version also has removed the concept of quadtree generators (configurable functions that build a quadtree from an array of data). Now it has become the only quadtree, which can be created via d3.quadtree and addition of data can be done via quadtree.add and quadtree.addAll.
Some of the features of DOM are immutable in Version 4.0 like data- driven transformation, transition and animation changes in DOM, providing a cleaner interface. D3 Version 4.0 changes are better interaction for brushing.
The micro-libraries available in 4.0 are “easier to understand, develop and test”, release notes says. It has reduced the distinction between a code module and a plugin and increasing the pace of development in the D3 feature. Developers can release their own customized standalone libraries for use of D3.If not interested with D3 can go with default bundle.