
Constructor brackets are optional
const newDate = new Date(); // valid
const myClass = new MyClass(); // valid
const anotherDate = ne...
For further actions, you may consider blocking this person and/or reporting abuse
That thing with
arguments[]
array was new to me! Thanks :). dev.to is a really refreshing breeze after StackOverflow experience.I'm glad you discovered something new! Keeps me motivated to write. Thanks for reading ♥️
Note that arrow functions do not have an arguments object.
This is such an oversight from me. Thanks for catching it. I wrote a full blog post on arrow functions and how they behave differently with
this
,new
andarguments
. I missed it here. I'll update.Thanks for reading ♥️
Optional Chaining made it into ES2020, and it's implemented in all major browsers now (caniuse.com/#feat=mdn-javascript_o...)!
Still shows in Stage 4 (Draft).
tc39.es/proposal-optional-chaining/
github.com/tc39/proposal-optional-...
Idk how those pages get updated, but there's no doubt it made it into ES2020: 2ality.com/2019/12/ecmascript-2020...
TC39 is the committee that handles ES proposals and specifications.
That being said your article does lead to what I was eventually looking for
tc39.es/ecma262/2020/
Looks like it is in the final document. I will update the post. Thanks for the awesome feedback ♥️
Yeah I know about TC39, I just meant that I don't know at what point on the process those specific pages get updated; I would have thought it would be after ES2020 is finalized and released, but apparently not
Great post. Slight nit:
new Date().toString() // works
new Date.toString() // fails
I am so glad you brought this up. I would love to explain this! There is a reason why this works:
And this does not
It's because
new Date.toString()
is not equal tonew Date().toString()
. *There is an extremely subtle difference. They have different precedence. *Check out: developer.mozilla.org/en-US/docs/W...
new Date.toString()
throws an error because.
has higher precedence thannew Date
so the expression becomes (or it is resolved as)(new (Date.toString))()
. They might look same but they are evaluated differently!In short, if you would like to invoke the constructor and chain it with a method in the object, the correct syntax is:
Give it a try😉
That's pretty amazing thanks!
So when chaining you dont save typing the parentheses, they can just go in two different places :)