Mit Vanilla-JS oder Vanilla JavaScript bezeichnet man das von jedem Internet-Browser verstandene JavaScript, dass nicht durch Frameworks oder ähnliches angepasst und/oder erweitert wurde.
Wenn man also etwas in Vanilla-JS programmiert, dann bedeutet das, dass es ohne den Einsatz von zusätzlichen Javascript-Frameworks geschieht.
Jedes JS-Framework – jQuery, Dojo Toolkit, Underscore, Zepto, Vue, React, Angular und weitere – baut im Grunde auf Vanilla-JS auf und spricht am Ende dieselbe Sprache. Es dient oft jedoch einem komplexeren Ziel und bringt vereinfachte Funktionen mit.
Ein Beispiel:
jQuery DOM class manipulation:
$('span.something').addClass('active')
Vanilla-JS class manipulation:
document.querySelector(''span.something').classList.add('active')
Das JavaScript, das ein Webbrowser versteht wird offiziell auch als ECMAScript bezeichnet (was im Grunde den Sprachkern von Javascript) bezeichnet. Dieser ist mittlerweile sehr fortgeschritten, so dass manche einfacheren Frameworks nach und nach komplett durch Vanilla-JS ersetzt werden könnten.
Vanilla-JS ist, im Vergleich zu anderen Frameworks, sehr schnell - vor allem wenn es im übliche DOM-Manipulation geht.
Hier ein Beispiel: http://youmightnotneedjquery.com