What is your favourite ES6 feature?
Tanwa Sripan

Tanwa Sripan @justtanwa

About: I enjoy coding, solving problems, playing games and watching anime. Basically, you will find me in front of a computer most of the time. Love to share experiences and learn from the experienced.

Location:
Stockholm, SE
Joined:
Mar 29, 2022

What is your favourite ES6 feature?

Publish Date: Jun 29 '22
47 19

Helloooo everyone! 👋 It has been a while since I last posted, I have been rather busy the past 2 weeks!

As the title suggests, I am curious to know what your favourite JavaScript ES6 feature is...🤔

I was recently asked this in an interview and it surprised me as I have been learning JS with latest features so I don't quite know which features are ES6 and which are newer... So I answered with what came to mind, and it was Promises. Since I have been learning about backend development with NodeJS, I have learnt a lot about asynchronous programming which is why I chose that answer (I also talked about async/await, which was not introduced until ES7, oops!). Of course, I had to explain why I chose that particular feature and I talked about the benefit of how it helps eliminate callback hell, improve error handling and how you can use Promise chaining to your advantage.

So, I present to you the same question, what is/are your favourite ES6 feature/s and why? (If you are preparing for an interview, this could be a good practice to answer out loud 😉).

Comments 19 total

  • timkovik
    timkovikJun 29, 2022

    Optional chaining is amazing

    • Tanwa Sripan
      Tanwa SripanJun 30, 2022

      That's cool also, though I have not used it much

  • Chris Gustin
    Chris GustinJun 30, 2022

    I’m a big fan of .forEach() and the related .filter() and .map() methods.

    Much cleaner and easier to read than the old C-style iterative loops in my opinion, and a great addition to the language given how much of modern JS and front-end dev involves looping through large amounts of data in some way or another.

    • Tanwa Sripan
      Tanwa SripanJun 30, 2022

      I agree, I also like array methods, they are very handy :D

  • Randall
    RandallJun 30, 2022

    There are a lot of great features that came in ES6, but I would agree that Promises are my favorite, especially since they paved the way for async/await. Const, let, and classes are also great.

  • admirnisic
    admirnisicJun 30, 2022

    Do not know what is my favorite one but one cool feature which is on top of my list is default value for function parameters.

    function sayHello(name = 'World') {
        return `Hello ${name}!`;
    }
    
    Enter fullscreen mode Exit fullscreen mode
  • Tanwa Sripan
    Tanwa SripanJun 30, 2022

    That's really cool, I have not used Proxies before, do you have an example use case you have used in the past?

    • 𒎏Wii 🏳️‍⚧️
      𒎏Wii 🏳️‍⚧️Jul 1, 2022

      Here is an example of how I use Proxies in the wild. They're one of my favourite things in JS; the sky is the limit for what you can build using them :D


      EDIT: In case that code requires an explanation, here is the documentation.

      • Tanwa Sripan
        Tanwa SripanJul 1, 2022

        Wow! A lot going on here, but it looks awesome :D Not sure I understand it all, but thank you for the example.

  • Peter Vivo
    Peter VivoJun 30, 2022

    generator function you can get in and leave (yield) so many times, it is perfect for declarative coding time consuming process. Modern usecase is redux-saga

    really old poker example on codepen.io

       // example of use generators
       * singleRound(){
    
        for( let deal of this.dealing() ) yield deal
    
        for( let flop of this.theBetRound( 'Flop' ) ) yield flop
    
        for( let flop of this.theFlop() ) yield
    
        for( let turn of this.theBetRound( 'Turn' ) ) yield turn
        yield this.theTurn(); 
    
        for( let river of this.theBetRound( 'River' ) ) yield river
        yield this.theRiver(); 
    
        for( let showdown of this.theBetRound( 'Showdown' ) ) yield showdown
    
        let winnerIs = []
        for( let score of this.showScores( winnerIs )) yield score
        let winner = this.theShowdown( winnerIs )
        yield winner    
        winner.chips += this.dealer.drawBet()
        for( let pause of Array(10)) yield winner
    
        // yield this.theShowdown()
      }
    
    Enter fullscreen mode Exit fullscreen mode
    • Tanwa Sripan
      Tanwa SripanJun 30, 2022

      Really cool, thank you for sharing!

  • Tanwa Sripan
    Tanwa SripanJun 30, 2022

    Thank you for this example!

  • Jakub T. Jankiewicz
    Jakub T. JankiewiczJul 1, 2022

    Mine are Proxy objects and default symbols that can be used for meta programming.

  • Andrew Baisden
    Andrew BaisdenJul 1, 2022

    Probably the new array methods.

  • official_dulin
    official_dulinJul 4, 2022

    Optional chain

  • raymond-yan
    raymond-yanJul 8, 2022

    Cool trick. Never thought about using destructuring like this.

Add comment