Rename articles prefixed with js-
This commit is contained in:
37
snippets/js/s/double-negation-operator.md
Normal file
37
snippets/js/s/double-negation-operator.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
title: What does the double negation operator do in JavaScript?
|
||||
shortTitle: Double negation operator
|
||||
type: question
|
||||
language: javascript
|
||||
tags: [type]
|
||||
author: chalarangelo
|
||||
cover: memories-of-pineapple-2
|
||||
excerpt: You've probably come across the double negation operator (`!!`) before, but do you know what it does?
|
||||
dateModified: 2022-07-26T05:00:00-04:00
|
||||
---
|
||||
|
||||
JavaScript's negation operator (`!`) is a unary operator, used to invert the truth value of its operand. When used twice, known as the double negation operator (`!!`), it can be used to convert a value to a boolean.
|
||||
|
||||
```js
|
||||
const x = 1;
|
||||
const y = null;
|
||||
|
||||
!!x; // true
|
||||
!!y; // false
|
||||
```
|
||||
|
||||
Using the double negation operator is functionally equivalent to using the `Boolean()` function, which we explored in depth in a [previous article](/js/s/boolean-function). In terms of readability and usability, I would still suggest using the `Boolean()` function. It conveys the intent of the operation more clearly, and it's easier to understand at a glance.
|
||||
|
||||
```js
|
||||
const x = 1;
|
||||
const y = null;
|
||||
|
||||
Boolean(x); // true
|
||||
Boolean(y); // false
|
||||
|
||||
const values = [0, 0, 2, 0, 3];
|
||||
// Kinda readable, but not great
|
||||
values.filter(x => !!x); // [2, 3]
|
||||
// Arguably more readable
|
||||
values.filter(Boolean); // [2, 3]
|
||||
```
|
||||
Reference in New Issue
Block a user