Hi, ES Next proposes to look forward to. My name is Bramus and we're at Yes Nation. So, let me just focus the correct screen here, yes.
So if you take a look at the ECMAScript timeline, we see this like this big divide between pre-2015 and post-2015. That's because TC39 is a committee which maintains and evolves the ECMAScript language. They put into place this development process that they started to use to advance the language.
Now, since we're short on time here today, because it is a lightning talk, I will give you the very short version of it. Stage zero is the straw person stage that's basically like, okay, here's a wide ID. I can propose one, you can propose one, everybody can propose one. For your proposal to advance to stage one, then it makes it into the proposal stage. That's basically TC39 saying, okay, we're kind of interested in this proposal. Let's see where this goes. Then by the time your proposal advances to stage two, it is a draft stage, TC39 basically confirms that, okay, we seem to be on to something, let's develop it. So you develop, develop, develop, develop, develop it. And finally, your proposal can make it into stage three, which is the candidate stage. At this point, the proposal is considered to be done, but they require feedback. Feedback from implementers, those are the browsers, and you are still developers. If all goes well, your proposal advances to stage four, which is the finished stage without any changes. So at this stage here from stage three to four, only critical changes are allowed to be made. So stage four, the finished stage, everything checks out, and then at the January meeting of TC39, the January meeting of TC39 holds, they will gather all the stage four proposals, and then they will put it into the next ES release. So this January, that we just had, then the ES 2020 release was collected.
So let's take a look at a few of my favorite proposals. The first one is optional chain. This is already part of ES 2020, and I like it a lot and I use it a lot personally. We have this object right here, message with a user and so forth on there. If we select the first thing from it, it is outputted, no problem there. Now say we select something that doesn't exist, for example, a last name, we get back undefined. We can add default value there, like a default file back in case it is falsey. What I use there is a short circuit logic with an or. So here in this case, anonymous will be returned.
Comments