This is an example to explain the variations of load events.
<body onload="someFunction()">
<img src="image1" />
<img src="image2" />
</body>
<script>
function someFunction() {
console.log("Hi! I am loaded");
}
</script>
In this case, the message is logged once all the contents of the page including the images and stylesheets(if any) are completely loaded.
DOMContentLoaded event
document.addEventListener("DOMContentLoaded", function(event) {
console.log("Hello! I am loaded");
});
In the above code, the message is logged only after the DOM/document is loaded (ie:once the DOM is constructed).
Self-invoking anonymous function
(function(){
console.log("Hi I am an anonymous function! I am loaded");
})();
Here, the message gets logged as soon as the browser interprets the anonymous function. It means, this function can get executed even before the DOM is loaded.