{"componentChunkName":"component---src-templates-blog-post-js","path":"/JavaScript/javascript-concept-6---null-undefined-undeclared/","webpackCompilationHash":"f92dbf25810602c1889e","result":{"data":{"site":{"siteMetadata":{"title":"Web Devlog","author":"RossenaHuh","siteUrl":"https://github.com/rossenahuh","comment":{"disqusShortName":"RossenaHuh","utterances":"rossenahuh/my-dev-blog.git"},"sponsor":{"buyMeACoffeeId":"rossena"}}},"markdownRemark":{"id":"8ab80559-a46f-580a-abcd-a2f4ee573adb","excerpt":"What’s the difference between a varible that is: null, undefined or undeclared?UndeclaredUndefinedIt’s declared but it hasn’t been assigned with any values.NullNull has a value. Its value is null which is a nothing value.\nCan be used in a situation where you need to zero out of…","html":"<h2 id=\"whats-the-difference-between-a-varible-that-is-null-undefined-or-undeclared\"><a href=\"#whats-the-difference-between-a-varible-that-is-null-undefined-or-undeclared\" aria-label=\"whats the difference between a varible that is null undefined or undeclared permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What’s the difference between a varible that is: null, undefined or undeclared?</h2>\n<p><strong>Undeclared</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> foo1 <span class=\"token operator\">+</span> <span class=\"token number\">1</span>\n\n<span class=\"token comment\">// foo1 is undeclared</span></code></pre></div>\n<p><strong>Undefined</strong></p>\n<p>It’s declared but it hasn’t been assigned with any values.</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">let</span> foo\n<span class=\"token keyword\">let</span> obj <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">let</span> arr <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span>\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">temp</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// don't return anything</span>\n<span class=\"token punctuation\">}</span>\n\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">,</span> obj<span class=\"token punctuation\">.</span>name<span class=\"token punctuation\">,</span> arr<span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token function\">temp</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// undefined</span></code></pre></div>\n<p><strong>Null</strong></p>\n<p>Null has a value. Its value is null which is a <strong>nothing</strong> value.\nCan be used in a situation where you need to zero out of value.</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">const</span> valueIsNull <span class=\"token operator\">=</span> <span class=\"token keyword\">null</span>\n\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>valueIsNull<span class=\"token punctuation\">)</span> <span class=\"token comment\">// null</span></code></pre></div>\n<p><strong>Check for undefined</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">let</span> foo\n\n<span class=\"token comment\">// bad idea</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">typeof</span> foo<span class=\"token punctuation\">)</span> <span class=\"token comment\">// undefined as a string</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">typeof</span> temp<span class=\"token punctuation\">)</span> <span class=\"token comment\">// undeclared, but also returns 'undefined'</span>\n\n<span class=\"token comment\">// preferred way</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>foo <span class=\"token operator\">===</span> <span class=\"token keyword\">undefined</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// boolean true</span></code></pre></div>\n<p><strong>Check for null</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token keyword\">null</span>\n\n<span class=\"token comment\">// terrible idea</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">typeof</span> foo<span class=\"token punctuation\">)</span> <span class=\"token comment\">// object</span>\n\n<span class=\"token comment\">// preferred way</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>foo <span class=\"token operator\">===</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// boolean true</span></code></pre></div>","frontmatter":{"title":"JavaScript Concept 6 - Null Undefined Undeclared","date":"July 06, 2019"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"/JavaScript/javascript-concept-6---null-undefined-undeclared/","previous":{"fields":{"slug":"/JavaScript/javascript-concept-5---statement(definition)-and-expression/"},"frontmatter":{"title":"JavaScript Concept 5 - Statement(Definition) and Expression","category":"JavaScript"}},"next":{"fields":{"slug":"/JavaScript/javascript-concept-7---==-and-===/"},"frontmatter":{"title":"JavaScript Concept 7 - == and ===","category":"JavaScript"}}}}}