{
    "componentChunkName": "component---src-templates-blog-post-js",
    "path": "/javascript-logical-operators/",
    "result": {"data":{"markdownRemark":{"html":"<div class=\"table-of-contents\">\n<ul>\n<li><a href=\"#the-and-operator---\">The AND operator - (&#x26;&#x26;)</a></li>\n<li><a href=\"#the-or-operator---\">The OR operator - ||</a></li>\n</ul>\n</div>\n<p>In this post, we will cover only two logical operators - <del>AND(&#x26;&#x26;)</del> and <del>OR(||)</del>.</p>\n<p>First, we need to understand the concept of truthy and falsy in JavaScript.</p>\n<p>Any value that, when converted into a Boolean, becomes <del>true</del> is truthy, while any value that becomes <del>false</del> is falsy.</p>\n<p>A Boolean is a logical data type that can only have the values: <del>true</del> or <del>false</del>.</p>\n<pre class=\"grvsc-container synthwave-84\" data-language=\"js\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk9\">console</span><span class=\"mtk1\">.</span><span class=\"mtk6\">log</span><span class=\"mtk1\">(</span><span class=\"mtk9\">Boolean</span><span class=\"mtk1\">(</span><span class=\"mtk16\">&quot; &quot;</span><span class=\"mtk1\">)) </span><span class=\"mtk4 mtki\">//false</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk9\">console</span><span class=\"mtk1\">.</span><span class=\"mtk6\">log</span><span class=\"mtk1\">(</span><span class=\"mtk9\">Boolean</span><span class=\"mtk1\">(</span><span class=\"mtk7\">0</span><span class=\"mtk1\">)) </span><span class=\"mtk4 mtki\">//false</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk9\">console</span><span class=\"mtk1\">.</span><span class=\"mtk6\">log</span><span class=\"mtk1\">(</span><span class=\"mtk9\">Boolean</span><span class=\"mtk1\">(</span><span class=\"mtk5\">false</span><span class=\"mtk1\">)) </span><span class=\"mtk4 mtki\">//false</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk9\">console</span><span class=\"mtk1\">.</span><span class=\"mtk6\">log</span><span class=\"mtk1\">(</span><span class=\"mtk9\">Boolean</span><span class=\"mtk1\">(</span><span class=\"mtk5\">undefined</span><span class=\"mtk1\">)) </span><span class=\"mtk4 mtki\">// false</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk3\">name</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;Mac&quot;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk9\">console</span><span class=\"mtk1\">.</span><span class=\"mtk6\">log</span><span class=\"mtk1\">(</span><span class=\"mtk9\">Boolean</span><span class=\"mtk1\">(</span><span class=\"mtk3\">name</span><span class=\"mtk1\">)) </span><span class=\"mtk4 mtki\">//true</span></span></span></code></pre>\n<h3 id=\"the-and-operator---\" style=\"position:relative;\"><a href=\"#the-and-operator---\" aria-label=\"the and operator    permalink\" class=\"anchor before\"><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>The AND operator - (&#x26;&#x26;)</h3>\n<p>The <del>AND</del> operator is represented with two ampersands.</p>\n<p>In a chain of &#x26;&#x26;s, each value will be evaluated from left to right. If any of these values happen to be falsy, that value will be returned and the chain will not continue. If the chain doesn’t break before reaching the end, the last value in the chain will be returned.</p>\n<p><strong>In other words, <del>AND</del> returns the first falsy value or the last value if none were found</strong>.</p>\n<pre class=\"grvsc-container synthwave-84\" data-language=\"js\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk9\">console</span><span class=\"mtk1\">.</span><span class=\"mtk6\">log</span><span class=\"mtk1\">(</span><span class=\"mtk16\">`Hemanta`</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span><span class=\"mtk1\"> </span><span class=\"mtk16\">`Kumar`</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span><span class=\"mtk1\"> </span><span class=\"mtk16\">`Sundaray`</span><span class=\"mtk1\">) </span><span class=\"mtk4 mtki\">//Sundaray</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk9\">console</span><span class=\"mtk1\">.</span><span class=\"mtk6\">log</span><span class=\"mtk1\">(</span><span class=\"mtk7\">1</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span><span class=\"mtk1\"> </span><span class=\"mtk5\">false</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span><span class=\"mtk1\"> </span><span class=\"mtk7\">3</span><span class=\"mtk1\">) </span><span class=\"mtk4 mtki\">//false</span></span></span></code></pre>\n<h3 id=\"the-or-operator---\" style=\"position:relative;\"><a href=\"#the-or-operator---\" aria-label=\"the or operator    permalink\" class=\"anchor before\"><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>The OR operator - ||</h3>\n<p>The <del>OR</del> operator is written with two pipes.</p>\n<p>The <del>||</del> operator behaves exactly like the <del>&#x26;&#x26;</del> does, only in reverse! While a chain of &#x26;&#x26;s will break if a falsy value is found, a chain of ||s will break when it finds a truthy value. And just like with the &#x26;&#x26;s, if there are no truthy values and the end of the chain is reached, the last value in that chain is reached.</p>\n<p><strong>In other words, a chain of <del>OR</del> returns the first truthy value or the last one if no truthy value is found</strong>.</p>\n<pre class=\"grvsc-container synthwave-84\" data-language=\"js\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk9\">console</span><span class=\"mtk1\">.</span><span class=\"mtk6\">log</span><span class=\"mtk1\">(</span><span class=\"mtk5\">false</span><span class=\"mtk1\"> </span><span class=\"mtk10\">||</span><span class=\"mtk1\"> </span><span class=\"mtk7\">0</span><span class=\"mtk1\"> </span><span class=\"mtk10\">||</span><span class=\"mtk1\"> </span><span class=\"mtk16\">`text`</span><span class=\"mtk1\">) </span><span class=\"mtk4 mtki\">//text</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk9\">console</span><span class=\"mtk1\">.</span><span class=\"mtk6\">log</span><span class=\"mtk1\">(</span><span class=\"mtk5\">false</span><span class=\"mtk1\"> </span><span class=\"mtk10\">||</span><span class=\"mtk1\"> </span><span class=\"mtk5\">false</span><span class=\"mtk1\"> </span><span class=\"mtk10\">||</span><span class=\"mtk1\"> </span><span class=\"mtk5\">false</span><span class=\"mtk1\">) </span><span class=\"mtk4 mtki\">//false</span></span></span></code></pre>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    position: relative;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n    line-height: 1.4;\n  }\n  \n  .grvsc-code {\n    display: table;\n  }\n  \n  .grvsc-line {\n    display: table-row;\n    box-sizing: border-box;\n    width: 100%;\n    position: relative;\n  }\n  \n  .grvsc-line > * {\n    position: relative;\n  }\n  \n  .grvsc-gutter-pad {\n    display: table-cell;\n    padding-left: 0.75rem;\n    padding-left: calc(var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem)) / 2);\n  }\n  \n  .grvsc-gutter {\n    display: table-cell;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    user-select: none;\n  }\n  \n  .grvsc-gutter::before {\n    content: attr(data-content);\n  }\n  \n  .grvsc-source {\n    display: table-cell;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-source:empty::after {\n    content: ' ';\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    user-select: none;\n  }\n  \n  .grvsc-gutter + .grvsc-source {\n    padding-left: 0.75rem;\n    padding-left: calc(var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem)) / 2);\n  }\n  \n  /* Line transformer styles */\n  \n  .grvsc-has-line-highlighting > .grvsc-code > .grvsc-line::before {\n    content: ' ';\n    position: absolute;\n    width: 100%;\n  }\n  \n  .grvsc-line-diff-add::before {\n    background-color: var(--grvsc-line-diff-add-background-color, rgba(0, 255, 60, 0.2));\n  }\n  \n  .grvsc-line-diff-del::before {\n    background-color: var(--grvsc-line-diff-del-background-color, rgba(255, 0, 20, 0.2));\n  }\n  \n  .grvsc-line-number {\n    padding: 0 2px;\n    text-align: right;\n    opacity: 0.7;\n  }\n  \n  .synthwave-84 { background-color: #262335; }\n  .synthwave-84 .mtki { font-style: italic; }\n  .synthwave-84 .mtk9 { color: #FE4450; }\n  .synthwave-84 .mtk1 { color: #FFFFFF; }\n  .synthwave-84 .mtk6 { color: #36F9F6; }\n  .synthwave-84 .mtk16 { color: #FF8B39; }\n  .synthwave-84 .mtk4 { color: #848BBD; }\n  .synthwave-84 .mtk7 { color: #2EE2FA; }\n  .synthwave-84 .mtk5 { color: #F97E72; }\n  .synthwave-84 .mtk10 { color: #FEDE5D; }\n  .synthwave-84 .mtk3 { color: #FF7EDB; }\n  .synthwave-84 .mtk12 { color: #FFFFFFEE; }\n  .synthwave-84 .grvsc-line-highlighted::before {\n    background-color: var(--grvsc-line-highlighted-background-color, rgba(255, 255, 255, 0.1));\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, rgba(255, 255, 255, 0.5));\n  }\n</style>","frontmatter":{"title":"JavaScript Logical Operators","date":"2021-05-27"}}},"pageContext":{"slug":"/javascript-logical-operators/","prev":{"fields":{"slug":"/var-vs-let-vs-const-in-javascript/"},"frontmatter":{"modules":null}},"next":{"fields":{"slug":"/javascript-dom-manipulation/"},"frontmatter":{"modules":null}}}},
    "staticQueryHashes": ["3159585216"]}