Skip to content
loading...

Have blocks return the last statement with the Comma Operator

nektro profile image Meghan Denny twitter logo github logo ・1 min read  

Some languages allow for a syntax that allows for the last statement to be automatically be returned by the block.

{ 
  System.print("one")
  System.print("two")
  System.print("three")
  2 + 4
}

We can achieve this in JavaScript with the comma operator.

const doSomethings = () => (
    console.log(location.href),
    global.variable += 4,
    12 / 2
);

And just like that, the two code blocks from above would return the same thing!

twitter logo DISCUSS (6)
Discussion
markdown guide
 

I don't know about others, but I think that returning with this method is less readable

 

I agree. It's interesting that you can do it, but I prefer to be a little more explicit.

 

Since I came from c# background, so returning with comma operator hurts my eyes. No offense, btw!

 

I use the comma operator often in functional projects for this exact reason and I find it more intuitive than having a return statement.

One reason is that it mimics the pipe operator that I am frequently using, so the code blocks look similar.

Also every function flows through from top to bottom and always returning the last value, so in this codebase it becomes very intuitive.

 
 

Yes and I am very excited for it. Also excited for the partial application proposal. I think the pipeline proposal would replace compose and pipe and the partial application proposal would replace the need for most currying.

Very excited!

Classic DEV Post from Jul 30 '19

PublishTo.Dev: Scheduling article publishing on dev.to

Meghan Denny profile image
23. Local trans witch who uses a staff by night and a keyboard by day. she/her.