Document Object Model (DOM) Simplified
Tags: html, javascript, beginners, webdev
Published: 2022-05-18 12:35:41

**Hello 👋 buddies, welcome to my blog. Today, we will be simplifying the concept of DOM.**
## Introduction
When I started as a web developer, people often threw around the term “DOM” in the industry. Every JavaScript tutorial mentioned it, but I didn't know what it meant. Looking out for a straightforward explanation of DOM, the result of my exploration, confused with advanced programming terms. Now having the understanding after a long search, I thought it wise to help others in my previous situation with a simpler explanation. 

<center>
![lets-do-this-lets-begin-lets-get-started-gif](https://tenor.com/view/lets-do-it-brad-mondo-lets-do-this-lets-begin-lets-get-started-gif-19930452.gif)</center>

## Explanation 
**When you first heard of the term DOM, what first came to your mind?**
1. Documents
2. Object
3. Models <br />
**What do they mean ?**
<hr/>

## What's a document:
Web Documents are often defined as a simple HTML file. A web document, such as this page, is often made up of several files and is accessed via a URL (uniform resource locator). The HTML file itself contains most of the time style sheets, background images, other graphics, Java programs, and other files.
<br/> 
The document is your Html file
<br/> 
<center>![web-documents](https://www.bitfarm-archiv.com/pics/web-documents.png)</center>

The document is sent to the browser when loaded in form of an object.**"Object ??"**

### What's an object:
`An object is a term you often hear about in programing, having a good understanding of an object is a Great start in javascript.`
<br/>
**object in JavaScript** may be defined as an unordered collection of related data, of primitive or reference types, in the form of **“key: value”** pairs. These keys can be variables or functions and are called properties and methods, respectively, in the context of an object.
An object can be created with figure brackets {…} with an optional list of properties. A property is a “key: value” pair, where a key is a string (also called a “property name”), and the value can be anything.
```javascript
let object = {
Key: Value
}
``` 
<br/>
The object is represented in a tree-like format graphically in which all elements are referred to as nodes, and nodes are grouped based on HTML syntax arrangement, which has a parent-child relationship


<center>
![Dom-Tree-of-An-Example-Web-Page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/301hq1osn2db7jjf9ky5.png)
</center>

```
<div> <!-- parent element-->
<p><!-- child element to div element-->
<!-- text is also referred to as a node -->
Paragraph text <!-- child element top element-->
</p> 
</div>
```
**Note:** Because the vast majority of code that uses the DOM revolves around manipulating HTML documents, it's common to refer to the nodes in the DOM as elements, although strictly speaking not every node is an element.

The browser reader the **Document** has an **object** that can be graphically represented as a tree.
** What is a Model then??**

### What's a Model:
Let us look at this from the dictionary point of view. <br/>
1. Usually a miniature representation of something.
e.g.:- a plastic model of the human heart <br/> 
2.A pattern of something to be made.[Read more](https://www.merriam-webster.com/dictionary/model)
<br/>
Understanding the dictionary definition of a **model** let's relate it to a webpage, this is the representation of the **Object** created by the browser into a beautiful-looking layout where text, colors, images, etc. are organized and presented to the viewer. So I will call this the result after receiving and compiling the web document
<br />

## Conclusion
**let's look at it this way**

Receiving -> Convection -> Presentation

Webpages pass-through this simple process every time the webpage is loaded for the first time and also when it is being refreshed.
<br/>
**Receiving**:- it Receives the document either from a server or our local machine and <br/>
**Convection**:- readers of the document and convert each element into nodes <br/>
**Presentation**:- represent the object or tree created into the designed webpage to be displayed to the users. <br/>

In this case, when a change is made on the document it has no direct effect on the module except the document is saved and the browser creates a new object of the incoming document received, and then the model will be recreated or modified.

<hr/> 
## Congratulations
<center>
**Wow, what a journey, I am glad you made it to the end of this article.**
![Celebrate gif](https://tenor.com/view/celebrate-weekend-vibe-friday-be-like-gif-4811973.gif)
</center>

## Give feedback 
If you enjoyed and learned something new from this article,** Follow me **for More web simplified topics, and do well to give me feedback by using the reaction emojis.
<br/>
Let me know how you feel about the explanation in the comment section.
Comment for feedback, corrects, and recommendations.
<br/>
**Much** 🥰


## Let us connect
This is my first article 🎉🎊. <br/> I would like to connect with any and every reader <br/>
**Let us connect**   <br/>
[Twitter ](https://twitter.com/victorjosiah19)   <br/>
[LinkedIn ](https://www.linkedin.com/in/josiah-victor/)