JSFiddle - React, Tailwind, and code Playground

HTML

<div class='c1'></div>
<div></div>
<span></span>
<a href=""></a>

JavaScript

function scanDOM(){
	var elements = document.getElementsByTagName('*');
  
  var tags = {}, 
      classes = {},
      textNodes = 0;
      
  function increment(object, value){
    if(value in object) object[value]++;
    else object[value] = 1;
  }
   
  for(var i = 0; i < elements.length; i++){
  	var tag = elements[i].tagName.toLowerCase(),
    		cls = elements[i].className.match(/\S+/g),
        childs = elements[i].childNodes;
        
    increment(tags, tag);   
    
    for(var j = 0; j < childs.length; j++){
      if(childs[j].nodeType === 3) textNodes++;
    }
    
    if(cls) for(var j = 0; j < cls.length; j++){
      increment(classes, cls[j]);
    }
  }
  
  for(var tag in tags){
  	console.log('Тэгов ' + tag + ': ' + tags[tag]);
  }
  for(var cls in classes){
  	console.log('Элементов с классом ' + cls + ': ' + classes[cls]);
  }
  console.log('Текстовых узлов: ' + textNodes)
}
scanDOM()