<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: EOluwaseun</title>
    <description>The latest articles on Forem by EOluwaseun (@eoluwaseun).</description>
    <link>https://forem.com/eoluwaseun</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F893191%2F4db271f4-8112-4a25-a237-2d18d9690981.jpg</url>
      <title>Forem: EOluwaseun</title>
      <link>https://forem.com/eoluwaseun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/eoluwaseun"/>
    <language>en</language>
    <item>
      <title>JavaScript Engine Behind the Scenes</title>
      <dc:creator>EOluwaseun</dc:creator>
      <pubDate>Tue, 03 Oct 2023 02:05:52 +0000</pubDate>
      <link>https://forem.com/eoluwaseun/javascript-engine-behind-the-scenes-37k4</link>
      <guid>https://forem.com/eoluwaseun/javascript-engine-behind-the-scenes-37k4</guid>
      <description>&lt;p&gt;How JavaScript code is able to run on so many various computing devices?&lt;/p&gt;

&lt;p&gt;JavaScript is a high-level programming language designed to be understood by humans, as opposed to machine language (a series of 1s and 0s), which is designed for computer understanding.&lt;/p&gt;

&lt;p&gt;Higher-level programming languages are developer-friendly, with more readable and writable syntaxes, making it easier for developers to understand, debug, and maintain the code compared to working directly with machine code.&lt;/p&gt;

&lt;p&gt;With all that said, it’s clear computers do not understand JavaScript syntaxes the way developers do, but have you ever asked yourself how JavaScript code is able to run on so many various computing devices?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;JavaScript is able to run on various computing devices with the help of a software component called the JavaScript engine.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The JavaScript engine can be found mostly in the browser or other runtime environment. In this article, we will take a closer look at how JavaScript engines work and explore some of the latest developments in JavaScript engine technology.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;JavaScript Runtime Environment (JRE)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The JavaScript runtime environment is like a big box where JavaScript code is run. The box contains the JavaScript engine and some additional features (in browser context), such as the web APIs (to connect to the web), event loops, and callback queues. These features are provided so that JavaScript code can interact with the browser environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---dRc5fsG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tgjdronj5yvkfcw1tygs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---dRc5fsG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tgjdronj5yvkfcw1tygs.png" alt="Image describing JS runtime" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most common JavaScript runtime environments include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Browser runtime environment&lt;/li&gt;
&lt;li&gt;The Node.js runtime environment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A browser is by far the most common environment in which JavaScript code is executed. This is because JavaScript was originally designed to enhance interactivity in front-end applications. However, the Node.js runtime environment was also introduced for the purpose of executing JavaScript code outside the browser and creating server-side applications, APIs, and backend servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  JavaScript Engine
&lt;/h3&gt;

&lt;p&gt;A JavaScript engine is a program that interprets JavaScript code, translating it into machine code.&lt;/p&gt;

&lt;p&gt;JavaScript is a single-threaded programming language that can only run one task at a time. The JS engine can get blocked in the process of running heavy tasks that take a long time to execute because of it’s single-threaded nature. However, JavaScript provides a way of handling such tasks using some of the asynchronous techniques like Promise, async/await, and callbacks, which enable the code to keep running without blocking the main thread.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The most common JavaScript engines are:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;V8 engine (used in Chrome and Node.js)&lt;/li&gt;
&lt;li&gt;SpiderMonkey (used in Firefox)&lt;/li&gt;
&lt;li&gt;Chakra (used in Microsoft Edge)&lt;/li&gt;
&lt;li&gt;JavaScriptCore (used in Safari )&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The JavaScript engine is made up of two components, namely:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Call stack&lt;/li&gt;
&lt;li&gt;Memory heap&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IbkEjOKz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7f1c4ba3lh1ut38v8egs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IbkEjOKz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7f1c4ba3lh1ut38v8egs.png" alt="Image describing JavaScript engine" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The call stack and memory heap are both used to manage data storage and the execution of JavaScript programs, but they serve different purposes.&lt;/p&gt;

&lt;p&gt;The call stack manages the order of currently executing function calls, while the memory heap stores dynamic data that is not currently being used, such as arrays, objects, and other complex data structures.&lt;/p&gt;

&lt;p&gt;As previously mentioned, a JavaScript engine is a program that interprets and translates JavaScript code into a machine-understandable language. The JS engine begins by running the code through a parser.&lt;/p&gt;

&lt;h3&gt;
  
  
  PARSER
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YY3mStln--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ervwic1ai0rxa9dhl4h9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YY3mStln--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ervwic1ai0rxa9dhl4h9.png" alt="the parser stage of JavaScript program" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The parser is the first stage of the JS engine. It is responsible for breaking down the JavaScript code into smaller units called tokens (usually keywords, operators, and identifiers). After that, the parser checks for syntax errors on the sequence of tokens generated; if the parser finds an error, the JS engine stops execution of the code and throws a kind of error message. However, if the parser finds no errors, it produces what is called an abstract syntax tree (AST).&lt;/p&gt;

&lt;h3&gt;
  
  
  Abstract Syntax Tree (AST)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iOJg3KoA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cfmpbzntlvu3pz0yarit.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iOJg3KoA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cfmpbzntlvu3pz0yarit.png" alt="AST of JavaScript engine" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AST is a tree representation of your code syntax, making it easier for the JavaScript engine to understand, analyze, optimize, and execute the code syntax efficiently.&lt;/p&gt;

&lt;p&gt;You can check &lt;a href="https://astexplorer.net/"&gt;AST Explorer&lt;/a&gt; to see what the actual AST looks like. It is an online tool that generates the AST for any code that you enter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Interpreter
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z6ox4wY---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zduiu8arenpqxl62f64n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z6ox4wY---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zduiu8arenpqxl62f64n.png" alt="Interpreter stage of JS engine" width="800" height="451"&gt;&lt;/a&gt;&lt;br&gt;
The interpreter operates by converting the AST that is generated during the parsing stage into an intermediate representation (IR) before the code is finally executed.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NB: JavaScript engines use a variety of strategies to execute JavaScript code efficiently in various execution environments. For instance, SpiderMonkey, which was the first JS engine, uses an interpreter to execute JavaScript code; however, some of the most modern JS engines, like the V8 engine, use techniques such as IR, just-in-time (JIT), and so on to achieve very high performance, making the V8 engine one of the fastest JavaScript engines available.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  The Intermediate Representation (IR)
&lt;/h3&gt;

&lt;p&gt;IR is a representation of a program’s source code; IR acts as an intermediate step between the AST-generated code and machine code.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Bytecode is an example of IR. It acts as a higher-level representation of machine code, which means bytecode is not tied to any machine architecture. As a result, bytecode can be executed on different platforms without the need for recompilation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  Why is an intermediate representation (IR) needed in a JavaScript engine?
&lt;/h3&gt;

&lt;p&gt;IR is needed so that JavaScript code can be portable and run efficiently on every platform; without IR code, you may need to recompile every line of JavaScript code whenever you transfer it between platforms. However, IR made it possible for code written on machine “A” to run on machine “B” without the need for recompilation because IR is not bound to a specific machine architecture.&lt;/p&gt;
&lt;h3&gt;
  
  
  Compiler
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L3gz8oMA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3px1kxm0raci9ba6ql81.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L3gz8oMA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3px1kxm0raci9ba6ql81.png" alt="Compiler stage of JS engine" width="800" height="451"&gt;&lt;/a&gt;&lt;br&gt;
The major work of the compiler is to take the IR code and then transform it into more optimized machine code.&lt;/p&gt;
&lt;h3&gt;
  
  
  Interpreter vs Compiler
&lt;/h3&gt;

&lt;p&gt;Compilers and interpreters are two different programs used to translate higher-level languages (source code) into machine code that computers can understand.&lt;/p&gt;

&lt;p&gt;An &lt;strong&gt;interpreter&lt;/strong&gt; is a program that reads and translates source code one line at a time and then executes the code before moving to the next line for execution.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;compiler&lt;/strong&gt;, on the other hand, is a program that instantly reads and translates the entire source code into machine code or an intermediate representation (bytecode) in one go. The compiled code is then executed directly by the computer.&lt;/p&gt;
&lt;h3&gt;
  
  
  Interpreter pros and cons
&lt;/h3&gt;

&lt;p&gt;The interpreter takes less time to translate the source code; this is because the interpreter does not create an intermediate compiled version of the entire program before execution. The interpreter reads and executes the code line by line, and so on.&lt;/p&gt;

&lt;p&gt;However, the con of using an interpreter comes when you run the same code repeatedly. For instance, if you’re in a loop, you have to retranslate the same code repeatedly. This makes the overall execution time of the program slow.&lt;/p&gt;
&lt;h3&gt;
  
  
  Compiler pros and cons
&lt;/h3&gt;

&lt;p&gt;In contrast to the interpreter:&lt;/p&gt;

&lt;p&gt;The compiler process is slow at the start because the program has to first translate the entire source code into machine code, or IR, before the code is finally executed by the computer. However, the execution is very fast because it doesn’t have to retranslate the same code repeatedly, e.g., if a code is running through a loop.&lt;/p&gt;

&lt;p&gt;Additionally, during the compilation stage, the program type-checks for errors and makes edits to the code. These edits are known as optimizations.&lt;/p&gt;

&lt;p&gt;These optimizations make the execution of the program really fast.&lt;/p&gt;
&lt;h3&gt;
  
  
  Just-in-time (JIT) Compilation
&lt;/h3&gt;

&lt;p&gt;The basic idea of a just-in-time compiler is to avoid the need to repeatedly translate the same code where possible and to improve the overall performance of JavaScript in web browsers.&lt;/p&gt;

&lt;p&gt;JIT combines the best of both the interpreter and compiler methods, which significantly improves the performance of JavaScript code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Just-in-time&lt;/strong&gt; in JavaScript refers to the process whereby the compilation of code is done at runtime (meaning it is done during the execution of the program), as opposed to ahead of time (AOT), where the code compilation takes place first before execution.&lt;/p&gt;
&lt;h3&gt;
  
  
  Monitor
&lt;/h3&gt;

&lt;p&gt;Generally, every browser has its own unique way of implementing its own version of a just-in-time compiler. But the basic idea is often the same across all browsers. They added a new component to the JavaScript engine called the Profiler, also referred to as a Monitor. The monitor’s job is to keep track of how code is run, how many times it is run, and what types are used.&lt;/p&gt;

&lt;p&gt;To start, Monitor runs a code through the interpreter; this is because interpreters are quick to start things up. While the code is being interpreted, the monitor identifies code that runs a few times (the warm code segment) and code that runs many times (the hot code segment), then stores such code in the memory for another execution so that next time the JavaScript engine comes across the same method of code in the program, it executes directly from the memory instead of having to recompile the original source code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;below is a breakdown with an example&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function addSum(arr) {
  var sum = 0;
  for (var i = 0; i &amp;lt; arr.length; i++) {
    sum += arr[i];
  }
  return sum;
}

// Create an array with 100 elements
var arr = new Array(100);

var result = addSum(arr);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To execute the provided code, just-in-time parses the code and then generates baseline instructions for the function. The baseline instructions are relatively simple to make the code start quickly. As the code runs, JIT gathers information such as the array’s length and the types of operations performed. These instructions are needed by the compiler to decide if to generate an optimized version of the code or to continue the execution using the baseline instructions.&lt;/p&gt;

&lt;p&gt;The compiler generates optimized machine code if it notices the array’s length doesn’t change during the loop; however, if the array length changes and still maintains the same data types, JIT recompiles the code using a more optimized version of the code, which significantly improves the performance of the loop.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function addSum(arr) {
  var sum = 0;
  for (var i = 0; i &amp;lt; arr.length; i++) {
    sum += arr[i];
  }
  return sum;
}

// Change in the array length to 200
arr.length = 200;

// Call the addSum() function
var result = addSum(arr)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Optimizing compiler
&lt;/h3&gt;

&lt;p&gt;Basically, an optimizing compiler gathers information from the interpreter before making assumptions, which will then be used to create an optimized version of the code. For instance, the compiler can assume the types of variables and the order in which properties appear are going to be the same, and so much more.&lt;/p&gt;

&lt;p&gt;However, the assumptions of the optimizing compiler may turn out to be wrong if there is a change in the code, most likely in the variable types. The optimizing compiler will then perform what is called deoptimization and generate new machine code (not so efficient code).&lt;/p&gt;

&lt;p&gt;Deoptimization can occur for various reasons, but in our own case, the optimizing compiler can assume the array is always a number. However, if the array changes to a string, it may trigger deoptimization and then generate new machine code that is not so efficient.&lt;/p&gt;

&lt;h3&gt;
  
  
  Summary
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;JavaScript code is run in certain environments, the most common being the browser and Node.js runtime environments. The environment consists of the JavaScript engine to run JavaScript code and some additional features that enable JavaScript code to interact with its surroundings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The JavaScript engine is the program that interprets and translates JavaScript code into machine-understandable language. It started by first running the code through a parser, which breaks the code into smaller units called tokens. Afterward, an AST is generated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The interpreter is responsible for converting AST code into an intermediate representation (IR), such as bytecode, which acts as a higher-level form of machine code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The JIT compiler takes the IR (bytecode) and compiles it into machine code, later generating a more optimized version of the code from the hot segment, which significantly improves the code’s performance.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Relevant References:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://coralogix.com/blog/how-js-works-behind-the-scenes-the-engine/#menu"&gt;https://coralogix.com/blog/how-js-works-behind-the-scenes-the-engine/#menu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hacks.mozilla.org/2017/02/a-crash-course-in-just-in-time-jit-compilers/"&gt;https://hacks.mozilla.org/2017/02/a-crash-course-in-just-in-time-jit-compilers/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dzone.com/articles/how-javascript-engine-works"&gt;https://dzone.com/articles/how-javascript-engine-works&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading,I originally posted this article on &lt;a href="https://medium.com/javascript-in-plain-english/javascript-engine-behind-the-scenes-9cd0e19c7779"&gt;In Plain English&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>frontend</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Javascript array manipulation using the push, pop, unshift, and shift methods</title>
      <dc:creator>EOluwaseun</dc:creator>
      <pubDate>Tue, 08 Aug 2023 06:18:21 +0000</pubDate>
      <link>https://forem.com/eoluwaseun/javascript-array-manipulation-using-the-push-pop-unshift-and-shift-methods-37fm</link>
      <guid>https://forem.com/eoluwaseun/javascript-array-manipulation-using-the-push-pop-unshift-and-shift-methods-37fm</guid>
      <description>&lt;p&gt;Javascript array is a special type of variable that is known specifically for its ability to store and manage the order of elements of any data type, including numbers, strings, booleans, objects, functions, and even other arrays;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;The following image illustrates an example an array&lt;/u&gt;:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yIIpNe67--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cxdy5hsfroiyssckhkxp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yIIpNe67--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cxdy5hsfroiyssckhkxp.jpg" alt="Image illustration of an array" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;The following code illustrates an array&lt;/u&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
let myArray = [1, 'hello', true, { name: 'james', age: 20 }, [0, 1, 2]];


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Javascript array comes with a variety of built-in methods to enable common operations such as adding or removing of elements from the array, mapping, filtering, reducing, and many more.&lt;/p&gt;

&lt;p&gt;This article focuses mainly on adding or removing elements from  an array using the javascript’s built-in methods:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;push()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pop()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;shift()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unshift()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;PUSH Method&lt;/u&gt;:&lt;/strong&gt; The &lt;code&gt;push()&lt;/code&gt; array method adds one or more elements to the END of an array, modifies the array, and returns the modified array length.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RA827WsZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xml77i99wzjisnigndpv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RA827WsZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xml77i99wzjisnigndpv.jpg" alt="Image illustrating push function" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Syntax&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;The syntax is as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;array.push()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Where the &lt;code&gt;array&lt;/code&gt; represents the &lt;strong&gt;name&lt;/strong&gt; of the array.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Example&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Const fruits = ['apple', 'orange', 'mango']

fruits.push('grape', 'cherry')

console.log(fruits)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;Output&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;['apple', 'orange', 'mango', 'grape', 'cherry'] 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;u&gt;POP Method&lt;/u&gt;:&lt;/strong&gt; The &lt;code&gt;pop()&lt;/code&gt;The pop() array method performs the opposite action of Push()removing the last element from an array and returning that removed element..&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ED62iKmy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e1orrzc7pqex8cy2kz5e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ED62iKmy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e1orrzc7pqex8cy2kz5e.jpg" alt="Image illustrating Pop function" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Syntax&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Array.pop()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;Example&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Const cars = ['audi', 'mazda',  'volvo', 'toyota']

Const popped = cars.pop('toyota') // toyota is removed from the cars array


console.log(cars)
console.log(popped) // The returned array


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;Output&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; ['audi', 'mazda', 'volvo'] 

 ['toyota']

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;&lt;strong&gt;What's the Relationship between the  PUSH and POP array methods?&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;The relationship between these two methods is that the &lt;strong&gt;PUSH&lt;/strong&gt; can add elements to an array while &lt;strong&gt;POP&lt;/strong&gt; can take the same elements away. The POP and PUSH method is often used together when you need to maintain a last-in, first-out(LIFO) data structure, such as a &lt;a href="https://en.wikipedia.org/wiki/Stack_(abstract_data_type)"&gt;stack&lt;/a&gt;. The &lt;code&gt;Push()&lt;/code&gt; and &lt;code&gt;Pop()&lt;/code&gt; can be used to add and remove elements from a stack, respectively, in the reverse order in which they are added.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;UNSHIFT Method:&lt;/strong&gt;&lt;/u&gt; &lt;code&gt;unshift()&lt;/code&gt; array method adds one or more elements to the beginning of an array, modifies the array and returns the modified array length. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tUGdz_lx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5tahcbubjc2b20krc266.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tUGdz_lx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5tahcbubjc2b20krc266.jpg" alt="Image illustrating unshift function" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Syntax&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
array.unshift()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;Example&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Const fruits = ['apple', 'orange', 'mango']

fruits.unshift('grape', 'cherry')

console.log(fruits)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;Output&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
['grape', 'cherry', 'apple', 'orange', 'mango']

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;u&gt;SHIFT Method&lt;/u&gt;:&lt;/strong&gt; The &lt;code&gt;shift()&lt;/code&gt; array method removes the first element of an array and returns that removed element.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tsNutWbr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mp5jieourm0eqzydu6es.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tsNutWbr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mp5jieourm0eqzydu6es.jpg" alt="Image illustrating shift function" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Syntax&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
array.shift()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;Example&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Const cars = ['audi', 'volvo', 'toyota']

Const shift = cars.shift('audi')

console.log(cars)
console.log(shift)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;Output&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
 ['volvo', 'mazda']

 ['audi']
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;&lt;strong&gt;SUMMARY&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;push()&lt;/code&gt; method adds one or more elements to the end of an array and returns the new array length.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;pop()&lt;/code&gt; method removes the last element from an array and returns the removed element.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;shift()&lt;/code&gt; method removes the first element from an array and returns the removed element.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;unshift()&lt;/code&gt; method adds one or more elements to the beginning of an array and returns the new array length.  &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>LIVE SERVER package installations through npm(node package manager)</title>
      <dc:creator>EOluwaseun</dc:creator>
      <pubDate>Fri, 28 Jul 2023 02:36:32 +0000</pubDate>
      <link>https://forem.com/eoluwaseun/live-server-package-installations-through-npmnode-package-manager-52cd</link>
      <guid>https://forem.com/eoluwaseun/live-server-package-installations-through-npmnode-package-manager-52cd</guid>
      <description>&lt;p&gt;Live Server is a local development tool that automatically reloads your web applications when you make changes to your codebase. The live server package is installed either through &lt;code&gt;npm&lt;/code&gt; or as an &lt;code&gt;extension&lt;/code&gt;, depending on your specific requirements and the development environment you are working with. &lt;strong&gt;In this article you will learn&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to install live server package through &lt;code&gt;npm&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Modes of installing live server package.&lt;/li&gt;
&lt;li&gt;Why you should consider installing live server package through &lt;code&gt;npm&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1.&lt;u&gt;How to install live server package through npm&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Before you begin with the installation of live server package, make sure you have &lt;code&gt;Nodejs&lt;/code&gt; installed on your system 💻.&lt;br&gt;
&lt;strong&gt;Nodejs&lt;/strong&gt; is a run-time environment  that allows you to run javascript on both frontend and backend.&lt;br&gt;
You can download and install Node.js from the official website: &lt;a href="https://nodejs.org"&gt;https://nodejs.org&lt;/a&gt;. and select the installer  for your operating system, (you probably want the &lt;code&gt;.msi&lt;/code&gt; for Windows and the &lt;code&gt;.pkg&lt;/code&gt; for Mac. While &lt;strong&gt;Nodejs&lt;/strong&gt; is been  installed, an additional command line is also installed along with it, known as &lt;strong&gt;NPM&lt;/strong&gt;;&lt;br&gt;
&lt;a href="https://docs.npmjs.com/"&gt;Npm&lt;/a&gt; is a package manager for the Javascript programming language, mainly for managing and installing packages  in Node.js projects.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NB: Live Server is one out of the many javascript packages, so we need &lt;code&gt;npm&lt;/code&gt; to install it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once &lt;strong&gt;Nodejs&lt;/strong&gt; is installed on your system💻, you can proceed with the installations of live server package following the steps below 👇. However, You must have &lt;strong&gt;Created&lt;/strong&gt; and &lt;strong&gt;Opened&lt;/strong&gt; a project folder 📂 from your preferred code editor e.g. &lt;a href="https://code.visualstudio.com/docs/setup/setup-overview"&gt;Vs Code&lt;/a&gt; , in other to follow the steps below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--35y0LhEB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1bbuc6w5ava2dcn6nwtn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--35y0LhEB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1bbuc6w5ava2dcn6nwtn.png" alt="vscode editor" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;a. &lt;strong&gt;Open&lt;/strong&gt; your terminal and navigate to your project folder 📁.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g3QhUrln--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vc1okdhukdownpqqeiag.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g3QhUrln--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vc1okdhukdownpqqeiag.png" alt="vscode editor navigating to the folder created" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;b. &lt;strong&gt;Run&lt;/strong&gt; &lt;code&gt;npm init –y&lt;/code&gt; to initialize your project folder 📁. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2NO4-P0p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/atsimubzarb5pwqqfvq6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2NO4-P0p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/atsimubzarb5pwqqfvq6.png" alt="run npm init to initialize project" width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
c. &lt;strong&gt;Run&lt;/strong&gt; &lt;code&gt;npm install live-server -D&lt;/code&gt; to install Live Server in the development phase of your project. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zQhkhS74--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rab7le2wvgz0ybxi4mt5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zQhkhS74--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rab7le2wvgz0ybxi4mt5.png" alt="Installing live server package" width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
d. After the installation is completed, it's time to &lt;strong&gt;Start&lt;/strong&gt; the live server.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;i. Firstly, navigate and add a start command to the &lt;strong&gt;scripts section&lt;/strong&gt; of the package.json file of your project folder 📁. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--r2V8VC1N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8o34lp4blzv9ri2k7yt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--r2V8VC1N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8o34lp4blzv9ri2k7yt.png" alt="added a start command" width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
ii. Save and close the package.json file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fgBsiNDP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v1t7teqjiovi1pc03n48.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fgBsiNDP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v1t7teqjiovi1pc03n48.png" alt="save the file" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;iii. Run &lt;code&gt;npm start&lt;/code&gt; to start the live server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--odu72a2j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7mpemza5dx9uh1f9t5r6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--odu72a2j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7mpemza5dx9uh1f9t5r6.png" alt="start command" width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;npm start&lt;/code&gt; command starts the live server, and make your web application accessible throughout the local server, and automatically reloads your WEB BROWSER whenever you make changes to the HTML, CSS, AND JAVASCRIPT FILE.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P6zq8RZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t5kx5evuk9pyitg92mj1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P6zq8RZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t5kx5evuk9pyitg92mj1.png" alt="live server in the browser" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  2.&lt;u&gt;Modes of installing live server package&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Live server package can be installed in one of the two methods listed below:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;global&lt;/li&gt;
&lt;li&gt;development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's discuss the difference between these two methods&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Global installation &lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;Global installation simply means the live server package is  installed globally on your machine rather than installed locally within a specific project. This mode of installation allows you to run live server from any folder 📁 on your machine.&lt;/p&gt;

&lt;p&gt;Below &lt;strong&gt;is the command to install live server globally&lt;/strong&gt; 👇&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install live-server –g
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;-g&lt;/code&gt; option stands for global, and when it is specified, the live server package is installed globally and  made available as a global command line tool on your system 💻.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u&gt;Development installation&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;Development mode installation means the package is installed locally within a specific project. Development mode installation ensures that  your project has it’s own version of live server and makes it very easy for other developers  to collaborate with you on the same project , by simply installing all the required packages listed in your project.&lt;/p&gt;

&lt;p&gt;Here is the command line to install live server in development mode 👇&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install live-server -D
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;-D&lt;/code&gt; is known  as development dependency. Set &lt;code&gt;-D&lt;/code&gt; option only when you need to install live server in the development phase of your project .&lt;/p&gt;

&lt;h3&gt;
  
  
  3.&lt;u&gt;Why you should consider installing the Live Server package through npm?&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;Installing a Live Server package using npm offers a variety of benefits including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;PORTABILITY&lt;/u&gt; :&lt;/strong&gt; when you install a live server package through npm, you can easily set up your project on any machine that has Nodejs installed, Also when you share the project with other developers, all the dependencies listed in your project are easily installed using npm.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;DEPENDECIES HANDLING&lt;/u&gt; :&lt;/strong&gt; Your project dependencies are easily managed in a package.json file when you installed live server package through npm. This makes team collaboration easier and ensures consistent environments across different development setups.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;VERSION CONTROL&lt;/u&gt;:&lt;/strong&gt; By relying on npm, you can specify the  exact version of live server you want to use in your project. This helps in maintaining consistency across different development environments and ensures that all team member uses the same version of live server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;BACKEND FUNCTIONALITY&lt;/u&gt;:&lt;/strong&gt; If you are working on a web development project that requires backend functionality, such as handling API requests. Interactions with database and server-side rendering. you should consider installing live server using npm in other to get the live preview of your project in the front end. This is something a live server extension is not capable of handling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;COMPACTIBILITY&lt;/u&gt;:&lt;/strong&gt; Npm is supported by a wide range of operating systems, including Windows, macOS, and Linux. Installing live server using npm ensures cross-platform compatibility across different development environments.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;Summary&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live Server&lt;/strong&gt; package is a  local development tool with live reload capability for HTML, CSS and JavaScript files. Live Server package is installed either globally or in development mode. However, before installing a live server package using npm , your system 💻 must have Node.js installed. Installing live server  package through npm offers variety of benefits including dependencies handling, version control, compatibility e.t.c&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>node</category>
      <category>programming</category>
    </item>
    <item>
      <title>Undefined and Null are two dinstinct data types in javascript ...check the difference 👇</title>
      <dc:creator>EOluwaseun</dc:creator>
      <pubDate>Thu, 08 Sep 2022 15:01:18 +0000</pubDate>
      <link>https://forem.com/eoluwaseun/undefined-and-null-are-two-dinstinct-data-types-in-javascript-check-the-difference-4l8p</link>
      <guid>https://forem.com/eoluwaseun/undefined-and-null-are-two-dinstinct-data-types-in-javascript-check-the-difference-4l8p</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;Undefined&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Undefined&lt;/strong&gt; data types in javascript means the variable has been declared, but has no value.&lt;br&gt;
&lt;u&gt;Example&lt;/u&gt; 👇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p4ETPNdg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t0ktyjs3yydep0dsxuli.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p4ETPNdg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t0ktyjs3yydep0dsxuli.png" alt="Undefined" width="684" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;Null&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Null&lt;/strong&gt; in javascript, is an object that can be assigned to a variable as a representation of nothing or void.&lt;br&gt;
Example 👇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rJDAyhQO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2n46f0nxzez35hvwgtiq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rJDAyhQO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2n46f0nxzez35hvwgtiq.png" alt="Null" width="684" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE END!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I know most of you understand how the two data types in javascript differ,but this information is only for beginners. &lt;/p&gt;

&lt;p&gt;Thanks for Reading😊😊...&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to choose between the div and span tags in an HTML document and their practical usage.</title>
      <dc:creator>EOluwaseun</dc:creator>
      <pubDate>Tue, 06 Sep 2022 21:18:46 +0000</pubDate>
      <link>https://forem.com/eoluwaseun/how-to-choose-between-the-div-and-span-tags-in-an-html-document-and-their-practical-usage-378l</link>
      <guid>https://forem.com/eoluwaseun/how-to-choose-between-the-div-and-span-tags-in-an-html-document-and-their-practical-usage-378l</guid>
      <description>&lt;p&gt;👉 &lt;strong&gt;Firstly&lt;/strong&gt;,let's start by identifying the similarities and differences between &lt;u&gt;div&lt;/u&gt; and &lt;u&gt;span&lt;/u&gt; tags.&lt;/p&gt;

&lt;p&gt;1️⃣ &lt;strong&gt;div&lt;/strong&gt; and &lt;strong&gt;span&lt;/strong&gt; tags are both generic HTML elements&lt;/p&gt;

&lt;p&gt;2️⃣ &lt;strong&gt;div&lt;/strong&gt; tag is a &lt;u&gt;block-level element&lt;/u&gt; while on the other hand, &lt;strong&gt;span&lt;/strong&gt; tag is an &lt;u&gt;inline element&lt;/u&gt;.&lt;/p&gt;

&lt;p&gt;3️⃣ &lt;strong&gt;div&lt;/strong&gt; tag is used to wrap sections of a document, while smaller portion of text, image, and other content is wrapped using &lt;strong&gt;span&lt;/strong&gt; tags.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;u&gt;&lt;strong&gt;A div&lt;/strong&gt;&lt;/u&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;div or (a division element) is defined as a generic &lt;u&gt;Block-Level element&lt;/u&gt; used in HTML document to create sections for content such as headers, footer, images and other elements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uXGK1JsG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1u6egdoxnqbqm1xo1bux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uXGK1JsG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1u6egdoxnqbqm1xo1bux.png" alt="div description" width="732" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;What is block-level element&lt;/strong&gt;🤔❓&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;👉 A block-level element is a page element that takes a new line and the whole width of the  browser or its container. Example 👇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XiESGbgl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uknyv290j287csnim2z9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XiESGbgl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uknyv290j287csnim2z9.png" alt="block-level element" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;u&gt;span&lt;/u&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;span  tag is an &lt;u&gt;Inline element&lt;/u&gt; that is used to select inline content such as &lt;strong&gt;text&lt;/strong&gt;, &lt;strong&gt;links&lt;/strong&gt;, and other &lt;strong&gt;HTML elements&lt;/strong&gt; that are displayed inline for styling purposes.&lt;br&gt;
Example 👇 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_hRdv6fj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e4ijl8ekdr0xkowr2751.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_hRdv6fj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e4ijl8ekdr0xkowr2751.png" alt="inline element" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Inline element&lt;/strong&gt;🤔❓&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;👉 Inline element displays in a single line.And doesn't create a new line,it only takes up the space bounded by the tags defining the HTML element.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QZ41X7mJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nhuqg9kkayye97y9q2a1.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QZ41X7mJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nhuqg9kkayye97y9q2a1.jpeg" alt="Inlineelement" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Can the use of &lt;strong&gt;div&lt;/strong&gt; and &lt;strong&gt;span&lt;/strong&gt; tags be regarded as the best practices in &lt;strong&gt;HTML document&lt;/strong&gt;🤔❓&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;👉Div and span tags are considered &lt;u&gt;&lt;strong&gt;"generic"&lt;/strong&gt;&lt;/u&gt; components and are not best practices in HTML documents since they do not accurately communicate the content contained inside to the search engines🥺.&lt;/p&gt;

&lt;p&gt;Only &lt;strong&gt;"semantic"&lt;/strong&gt; elements communicate a true meaning ✅.&lt;/p&gt;

&lt;p&gt;👉 &lt;u&gt;A semantic element&lt;/u&gt; explains its meaning in detail to both the browser and the developer.&lt;/p&gt;

&lt;p&gt;Example of semantic Elements are:&lt;br&gt;
• nav&lt;br&gt;
• header&lt;br&gt;
• footer&lt;br&gt;
• main&amp;gt;&lt;br&gt;
• section ,e.t.c&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;SUMMARY&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
1️⃣ When creating a block-level element, a div is used; however, when wrapping content, such as text, a span is used.&lt;/p&gt;

&lt;p&gt;2️⃣ Use of semantic elements is the best practices  when creating a website.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>CSS POSITION PROPERTY</title>
      <dc:creator>EOluwaseun</dc:creator>
      <pubDate>Thu, 18 Aug 2022 18:03:00 +0000</pubDate>
      <link>https://forem.com/eoluwaseun/css-position-property-3jmo</link>
      <guid>https://forem.com/eoluwaseun/css-position-property-3jmo</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is POSITION PROPERTY in CSS ❓&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;➡️ The &lt;code&gt;Position Property&lt;/code&gt; in Css  is used to determine where an HTML element will appear in an HTML document.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Position property has five(5) different values which are 👇&lt;/u&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;•STATIC&lt;br&gt;
•RELATIVE &lt;br&gt;
•ABSOLUTE &lt;br&gt;
•FIXED&lt;br&gt;
•STICKY&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zsxxUhJI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/prz3ag87sfiy0p028ove.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zsxxUhJI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/prz3ag87sfiy0p028ove.png" alt="values of Position property" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1️⃣ &lt;u&gt;POSITION STATIC&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;👉 All HTML page elements are &lt;u&gt;Static&lt;/u&gt; by nature and they are displayed just as they appeared during the normal flow of the document.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;u&gt;Normal&lt;/u&gt; flow of HTML elements are displayed from LEFT ⬅️ to RIGHT ➡️ /TOP ⬆️  to DOWN ⬇️  order, in the browser window💻.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
Just as their name implies &lt;code&gt;"STATIC"&lt;/code&gt;  This Element cannot be moved or controlled, and it is unaffected by the &lt;u&gt;TOP&lt;/u&gt;, &lt;u&gt;BOTTOM&lt;/u&gt;, &lt;u&gt;LEFT&lt;/u&gt;, &lt;u&gt;RIGHT&lt;/u&gt;, and &lt;u&gt;Z-INDEX&lt;/u&gt; properties.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ebLRPO1r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/os4fjwcowexly6ft5zbf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ebLRPO1r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/os4fjwcowexly6ft5zbf.png" alt="Static Position" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2️⃣ &lt;u&gt;POSITION RELATIVE&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;👉 Position Relative automatically changed HTML elements from their Static, which is  the (default) state to a dynamic state.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Here, using TOP, BOTTOM, RIGHT and
Z-INDEX properties is totally acceptable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zyWhplza--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dklg4xpwv085mozvas8b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zyWhplza--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dklg4xpwv085mozvas8b.png" alt="Relative description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Position Relative allows any HTML element to be moved from its current state to any other portion of the page.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;3️⃣ &lt;u&gt;POSITION ABSOLUTE&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;👉 The Position Absolute placed  HTML elements in relation to the edges of it's first Positioned &lt;strong&gt;ancestor&lt;/strong&gt; or the edges of the browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is ancestor in CSS&lt;/strong&gt;❓&lt;/p&gt;

&lt;p&gt;An &lt;strong&gt;ancestor&lt;/strong&gt; is just the &lt;u&gt;parent&lt;/u&gt;, &lt;u&gt;grandparent&lt;/u&gt;, or &lt;u&gt;great-grandparent&lt;/u&gt; of an HTML tag up to the root&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;👉 NOTE: HTML elements are positioned in relation to the edges of the browser's view port &lt;strong&gt;if&lt;/strong&gt;  position ancestor is not defined.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ho4EQD0W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uws7i9nsxcfhfydtka1i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ho4EQD0W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uws7i9nsxcfhfydtka1i.png" alt="Absolute Position" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4️⃣ &lt;u&gt;POSITION FIXED&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;👉 Position Fixed is used to pinned or fixed an HTML element to the edges of the browser's view port&lt;/p&gt;

&lt;p&gt;▪︎Fixed position always maintained its state and it is not affected by scrolling.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y9c2skFV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/io4kjxpwrhdb5eetzn94.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y9c2skFV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/io4kjxpwrhdb5eetzn94.png" alt="fixed position" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Hint&lt;/strong&gt;:  whenever Position is set to &lt;u&gt;Fixed&lt;/u&gt;,two things✌ are certain&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The element is taking away from its normal position.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The element is automatically converted from block element to inline-block.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;An &lt;strong&gt;Inline-block&lt;/strong&gt; lost it’s 100% width by default as the width is set to auto depending on the length of the content inside of it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;5️⃣ &lt;u&gt;POSITION STICKY&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;👉 Position sticky is used to position and stick an HTML element in relation to the edges of the browser view ports.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Position sticky&lt;/strong&gt; is treated as &lt;code&gt;relative&lt;/code&gt; until the scroll location reaches a particular point at which it takes a &lt;code&gt;fixed position&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D3O9X68C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wprj8mv2vn4vhnoq9wy1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D3O9X68C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wprj8mv2vn4vhnoq9wy1.png" alt="sticky position" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>html</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>I made a quick video on how to add image/Logo to a Navigation Bar,Using Html and Css.</title>
      <dc:creator>EOluwaseun</dc:creator>
      <pubDate>Tue, 16 Aug 2022 13:10:32 +0000</pubDate>
      <link>https://forem.com/eoluwaseun/i-made-a-quick-video-on-how-to-add-imagelogo-to-a-navigation-barusing-html-and-css-2l02</link>
      <guid>https://forem.com/eoluwaseun/i-made-a-quick-video-on-how-to-add-imagelogo-to-a-navigation-barusing-html-and-css-2l02</guid>
      <description>&lt;p&gt;&lt;a href="https://www.instagram.com/p/Cg_aDR-oYRk/?igshid=YmMyMTA2M2Y="&gt;https://www.instagram.com/p/Cg_aDR-oYRk/?igshid=YmMyMTA2M2Y=&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>HTML basics structure</title>
      <dc:creator>EOluwaseun</dc:creator>
      <pubDate>Sat, 30 Jul 2022 02:35:00 +0000</pubDate>
      <link>https://forem.com/eoluwaseun/html-basics-structure-1gmj</link>
      <guid>https://forem.com/eoluwaseun/html-basics-structure-1gmj</guid>
      <description>&lt;p&gt;1️⃣ &lt;strong&gt;&lt;u&gt;The DOCTYPE&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every first Line of any HTML document must begins with a Declaration that identifies the Document Type.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XGnjVXbG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y70zlal6d738p7dkt3nu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XGnjVXbG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y70zlal6d738p7dkt3nu.png" alt="document type illustration" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Declaration lets the browsers know in advance the kind of document they will be processing, Enabling them to modify their processing procedures accordingly&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
The document type is formatted as👇
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
This tag informs the browser that the Language used to create the markup on the page is &lt;strong&gt;HTML&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;➡️ Hint: There is no Case difference in &lt;br&gt;
&amp;lt;!DOCTYPE &amp;gt; declaration&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YyuS5rWE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zs9ueyccqax93yksy914.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YyuS5rWE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zs9ueyccqax93yksy914.png" alt="!DOCTYPE Declaration commonmistakes" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2️⃣ &lt;strong&gt;&lt;u&gt;Html Element&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;HTML tag appears immediately after the document type declaration at the top☝of the page.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5EJJ20ZH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vk4xjv2ieey490re4kbw.png" alt="html illustration" width="800" height="450"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Opening and Closing HTML tags act as the building blocks for our Webpage, with the majority of Other tags nested inside of them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;👉 NOTE: An opening HTML tag must have a corresponding closing tag to specify the ending of the HTML Page.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HHvbvfjP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5hvtvgxxehjpqcp9uz6m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HHvbvfjP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5hvtvgxxehjpqcp9uz6m.png" alt="open and closing html illustration" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3️⃣ &lt;strong&gt;&lt;u&gt;HEAD TAG&lt;/u&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Open head tag&lt;/strong&gt; comes next after &lt;strong&gt;open html tag&lt;/strong&gt; .The head is also a pair tag i.e it must be Closed. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_L09OqbZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r1c2szg058em2tzmc76c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_L09OqbZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r1c2szg058em2tzmc76c.png" alt="opening and closing head tags" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The head tag contains important instructions for our browser, and the most frequently found elements in the head tag includes&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;TITLE&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;META&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;STYLE&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;LINKS,etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;➡️  &lt;strong&gt;&lt;u&gt;TITLE&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;title&lt;/code&gt; of the page is Firstly defined by the head tag.&lt;br&gt;
Specified with both open and closing tags. these tags. then display the real title of the page in the browser's tab or title bar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;MY FIRST WEBPAGE&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result👇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SPVsGOZz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d9iyp9povec9659rk4rz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SPVsGOZz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d9iyp9povec9659rk4rz.png" alt="title of Webpage" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;➡️  &lt;strong&gt;&lt;u&gt;META&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;meta&lt;/code&gt; tags are the next set of tags in our Head tag following the &lt;u&gt;title&lt;/u&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--asI0-n6x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dinz0ln4ag3aubksrtai.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--asI0-n6x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dinz0ln4ag3aubksrtai.png" alt="meta in html" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;What's meta&lt;/u&gt;❓&lt;br&gt;
&lt;strong&gt;meta&lt;/strong&gt; is an HTML tag that provides information about document's metadata.&lt;/p&gt;

&lt;p&gt;👉 &lt;u&gt;&lt;strong&gt;Metadata&lt;/strong&gt;&lt;/u&gt; is simply an information about data.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Metadata&lt;/strong&gt; are hidden from displayed on the Webpage, but the main goal of it, Is to give the browser and search engines valuable information about your website&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;The first meta tag is known as the &lt;strong&gt;meta name description&lt;/strong&gt; . The &lt;u&gt;description&lt;/u&gt; is then Followed by the &lt;strong&gt;content&lt;/strong&gt; .
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name= &lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;" ........ "&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;👉 &lt;u&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/u&gt; is an HTML tag that summarises the page’s content.&lt;/p&gt;

&lt;p&gt;👉&lt;strong&gt;&lt;u&gt;The content&lt;/u&gt;&lt;/strong&gt;🤔❓&lt;br&gt;
 Content is the sample of text that appears below the link of your search results&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The purpose of the &lt;code&gt;meta description&lt;/code&gt; is to entice searchers to visit your website. And it informs them of the page's content.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Example below👇&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3baQcWbg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ip4ijv5ixyx38j8g72d2.png" alt=" description on websites" width="800" height="450"&gt; 
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The next tag indicates the👇&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nt"&gt;meta&lt;/span&gt; &lt;span class="na"&gt;charset = &lt;/span&gt;&lt;span class="s"&gt;“utf-8"&lt;/span&gt; &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 &lt;strong&gt;Charset&lt;/strong&gt; is an HTML attribute,that defines character encoding which browser uses when displaying website's content&lt;/p&gt;

&lt;p&gt;• The value of the &lt;strong&gt;charset&lt;/strong&gt; is &lt;code&gt;“UTF-8”&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;u&gt;What's About&lt;/u&gt;&lt;/strong&gt; &lt;code&gt;"utf-8"&lt;/code&gt;🤔❓&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;"utf-8"&lt;/code&gt; is a character encoding that converts &lt;u&gt; machine code &lt;/u&gt; into &lt;u&gt; text &lt;/u&gt; that can be read by humans and vice versa.&lt;/p&gt;

&lt;p&gt;👉Any language can be displayed using &lt;br&gt;
&lt;code&gt;"utf-8"&lt;/code&gt;. Additionally, it expands upon the previous encoding scheme &lt;code&gt;ASCII&lt;/code&gt; , which uses &lt;strong&gt;&lt;u&gt;7-bit&lt;/u&gt;&lt;/strong&gt; code points to encode &lt;strong&gt;128 unique characters&lt;/strong&gt; .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;While&lt;/strong&gt;  &lt;code&gt;utf-8&lt;/code&gt; uses &lt;strong&gt;&lt;u&gt;8-bit&lt;/u&gt;&lt;/strong&gt; code points, supports up to &lt;u&gt;&lt;strong&gt;256&lt;/strong&gt;&lt;/u&gt;  distinct characters , and introduces a number of extra international characters like &lt;u&gt;Chinese&lt;/u&gt; and &lt;u&gt;Arabic&lt;/u&gt; that &lt;code&gt;ASCII&lt;/code&gt; does not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are machine code&lt;/strong&gt;🤔❓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Machine code&lt;/strong&gt; is a collection of binary numbers or bits that computers can comprehend.&lt;/p&gt;

&lt;p&gt;Since binary is the only language that a computer could understand, utf-8's primary function is to translate our text file into that format.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;And Lastly we have the meta viewport 👇
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"Viewport"&lt;/span&gt;&lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, scale-initial=1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;&lt;strong&gt;What's Viewport&lt;/strong&gt;&lt;/u&gt;🤔❓&lt;/p&gt;

&lt;p&gt;👉  &lt;strong&gt;Viewport&lt;/strong&gt; is the viewers visible portion of the webpage 🖥.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Viewport meta tag inform the browser how to regulate the size of the pages. And the size changes depending on the device 💻📲. &lt;br&gt;
Example below 👇&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VaSJFZRR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/46nz5q5oqfbmsv8etsev.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VaSJFZRR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/46nz5q5oqfbmsv8etsev.png" alt="Viewport description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉&lt;u&gt;&lt;strong&gt;The open and closing style tags are the following tag in our head tag&lt;/strong&gt; &lt;/u&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
All Code that is included in the style tag are refer to as style rules,Also, it defines the &lt;code&gt;Cascading Style Sheet&lt;/code&gt; (CSS) for pages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;u&gt;&lt;strong&gt;Cascading Style&lt;/strong&gt;&lt;/u&gt; can be used to format any HTML element, including &lt;code&gt;font&lt;/code&gt; , &lt;code&gt;colors&lt;/code&gt; , &lt;code&gt;line&lt;/code&gt; , &lt;code&gt;height&lt;/code&gt; , and more.&lt;br&gt;
However, because of how frequently it is used, CSS is the subject of a whole course.&lt;/p&gt;

&lt;p&gt;👉 &lt;u&gt;&lt;strong&gt;The body&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The &lt;strong&gt;body&lt;/strong&gt; serves as the primary content region of an &lt;code&gt;HTML document&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It is also referred to as the last child of an &lt;code&gt;HTML tag&lt;/code&gt; and contains a &lt;u&gt;starting tag&lt;/u&gt; and an &lt;u&gt;ending tag&lt;/u&gt; that are both enclosed within the &lt;strong&gt;HTML&lt;/strong&gt; tag.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OGJ-cASb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q3zqw4t5fj7vav8bq76u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OGJ-cASb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q3zqw4t5fj7vav8bq76u.png" alt="html documentdescription" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>beginniners</category>
      <category>coding</category>
    </item>
    <item>
      <title>HTML FOR BEGINNERS</title>
      <dc:creator>EOluwaseun</dc:creator>
      <pubDate>Sun, 17 Jul 2022 07:09:10 +0000</pubDate>
      <link>https://forem.com/eoluwaseun/html-for-beginners-5efb</link>
      <guid>https://forem.com/eoluwaseun/html-for-beginners-5efb</guid>
      <description>&lt;h4&gt;
  
  
  Here is a fast introduction to HTML, which is an excellent language to learn if you're new to web programming.
&lt;/h4&gt;

&lt;p&gt;A Thread ↓ 🧵.&lt;/p&gt;

&lt;h4&gt;
  
  
  WHAT IS HTML❓
&lt;/h4&gt;

&lt;p&gt;&lt;u&gt;HTML&lt;/u&gt; is a markup language that provides instructions to web browsers and informs them on how to display web pages for viewers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The way fonts🔠, colors🌈, pictures🧸, and hyperlinks are presented on websites is defined by HTML and CSS.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;HTML is also known as a language used to format webpages,it is required in order to construct a well-formatted web document, also known as a WEBPAGE.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A WEB PAGE is what❓&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A well-formatted document called a &lt;u&gt;Webpage&lt;/u&gt; is used to share information online👨‍💻.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Why are properly formatted documents on web pages necessary❓&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It  is necessary so that the layout of a websites can be good for reading&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;👉Hypertext Markup Language&lt;/strong&gt; is what &lt;u&gt;HTML&lt;/u&gt; stands for 🚹.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;u&gt;HYPER&lt;/u&gt; is short for "hyperlink," which enables us to go across pages or within the same page. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;u&gt;TEXT&lt;/u&gt; is the information that will really appear on the website.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;u&gt;MARKUP LANGUAGE&lt;/u&gt; is a set of tags used to format webpages so that they can be read by browsers like Firefox, Chrome, Safari, and others.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How do Browsers work❓&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Browsers are programs you install on your computer to read HTML files and displays it on the screen 🖥.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Note that only the content enclosed within HTML tags is shown by browsers on Web pages.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;HELLO WORLD &lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Result of this code in the browser will be👇&lt;br&gt;
          &lt;code&gt;HELLO WORLD&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;u&gt;HTML tag types&lt;/u&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;There are two different kinds of tags&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1️⃣  paired tags&lt;br&gt;
2️⃣  unpaired tags.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Opening and Closing tags make up a Pair of tags&lt;/strong&gt;. example... 👇
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;HELLO WORLD 🌎 &lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The first h1 that has less and greater than symbols indicates the opening tags,  While the second h1 indicates you are closing your tags by adding a forward slash.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unpaired tags/stand-alone tags as their name implies, these tags are single, unpaired, and stand-alone&lt;/strong&gt;. &lt;br&gt;
example... 👇&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt; &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"/picture.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This defines its open and closing tags.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the html features and restrictions?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;👉&lt;u&gt;FEATURES&lt;/u&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;It is versatile.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;many different browsers support it&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;highly effective language for webpage structuring. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;👉&lt;u&gt;RESTRICTIONS&lt;/u&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;HTML's ability to design has limitations. So, we are unable to design websites that are appealing. So we use &lt;code&gt;html&lt;/code&gt; and &lt;code&gt;css&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Does not support programming, Thus, we are unable to develop interactive web sites. As a result we use &lt;code&gt;javascript&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>javascript</category>
      <category>css</category>
    </item>
  </channel>
</rss>
