Itโs always a pain to debug 1-line arrow function with a console.log. Why? b/c we need to convert it to a multi-line first. No more! Just use ||
before your expression. It outputs both your console.log
and expression ๐
And clean up is a breeze! No more messy re-conversion back to a 1-line. Just remove your console.log
. And youโre done ๐
// โ () => console.log('๐ค') || expression// โ
() => {
console.log(โ๐คโ)
return expression
}
Letโs take a look at a simple example of how this would work:
const numbers = [1,2,3];numbers.map(number => number * 2);
// โ Debug quickly by prepending with
||
numbers.map(number => console.log(number) || number * 2);// โ No need to expand it to multi line
numbers.map(number => {
console.log(number);
return number * 2;
});
||
work?Often times we think the ||
operator is only used in conditional statements. However, you can also think of it as a selector operator. It will always evaluate one of the 2 expressions.
Because console.log
always return undefined
, which is a falsy value. The second expression will always be evaluated ๐
To learn more about the ||
operator, check out my previous post here
@phenax5: You can also use the comma operator. Separate two expressions with a comma and it will execute the first one and then the second and return with the second one.
a => (console.log(a), a + 5);
And let me break up the example so itโs very clear where the 2 expressions are:
a => (
console.log(a),
a + 5
)
โ ๏ธ Watch your comma placement
But make sure you donโt do this. I made that mistake when I first saw his example. You donโt want to stick the expression inside the console.log
. If you do that, your function would not return anything and nothing would be evaluated. Hence, breaking your function. So be careful with your comma placement ๐
a => (
console.log(a, a + 5),
)
||
with TypeScriptIf youโre working with TypeScript and depends on how you set it up. Using this debugging technique might give you an error and prevent your code from compiling. In that case, you can suppress the error using ts-ignore
.
Using ts-ignore
should no be a huge deal in this case because the console.log
is only there temporarily while you debug. Once youโre done, you should definitely remove it.
// @ts-ignore: Unreachable code error
() => console.log(โ๐คโ) || expression
Thanks: @stramel89
โ The Complete JavaScript Course 2019: Build Real Projects!
โ Vue JS 2 - The Complete Guide (incl. Vue Router & Vuex)
โ JavaScript Bootcamp - Build Real World Applications
โ The Web Developer Bootcamp
โ Top 12 Javascript Tricks for Beginners
โ Top 10 JavaScript array methods you should know
โ An Introduction to Functional JavaScript
โ Building a chat widget with Go and JavaScript
โ Vuejs 2 Authentication Tutorial
Originally published at https://www.samanthaming.com
#javascript #web-development