Nest all content into snippets
This commit is contained in:
46
snippets/articles/s/javascript-truthy-falsy-values.md
Normal file
46
snippets/articles/s/javascript-truthy-falsy-values.md
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
title: What are truthy and falsy values in JavaScript?
|
||||
shortTitle: Truthy and falsy values
|
||||
type: question
|
||||
language: javascript
|
||||
tags: [type,comparison]
|
||||
author: chalarangelo
|
||||
cover: little-bird
|
||||
excerpt: JavaScript uses type coercion in Boolean contexts, resulting in truthy or falsy values. Get a hang of how it all works in this quick guide.
|
||||
dateModified: 2021-09-12T05:00:00-04:00
|
||||
---
|
||||
|
||||
JavaScript uses **type coercion** (implicit conversion of values from one data type to another) in Boolean contexts, such as conditionals. This means that values are considered either truthy (evaluate to `true`) or falsy (evaluate to `false`) depending on how they are evaluated in a Boolean context.
|
||||
|
||||
There are 6 values that are considered **falsy** in JavaScript:
|
||||
|
||||
- The keyword `false`
|
||||
- The primitive value `undefined`
|
||||
- The primitive value `null`
|
||||
- The empty string (`''`, `""`)
|
||||
- The global property `NaN`
|
||||
- A number or BigInt representing `0` (`0`, `-0`, `0.0`, `-0.0`, `0n`)
|
||||
|
||||
Every other value is considered **truthy**. It's important to remember that this applies to all JavaScript values, even ones that might seem falsy, such as empty arrays (`[]`) or empty objects (`{}`).
|
||||
|
||||
You can check a value's truthiness using either the `Boolean()` function or a double negation (`!!`).
|
||||
|
||||
```js
|
||||
Boolean(false); // false
|
||||
Boolean(undefined); // false
|
||||
Boolean(null); // false
|
||||
Boolean(''); // false
|
||||
Boolean(NaN); // false
|
||||
Boolean(0); // false
|
||||
Boolean(-0); // false
|
||||
Boolean(0n); // false
|
||||
|
||||
Boolean(true); // true
|
||||
Boolean('hi'); // true
|
||||
Boolean(1); // true
|
||||
Boolean([]); // true
|
||||
Boolean([0]); // true
|
||||
Boolean([1]); // true
|
||||
Boolean({}); // true
|
||||
Boolean({ a: 1 }); // true
|
||||
```
|
||||
Reference in New Issue
Block a user